开发者

关于Python中函数的几种形参

开发者 https://www.devze.com 2023-11-19 10:01 出处:网络 作者: 人气小姜
目录python函数形参位置参数关键字参数默认参数非关键字可变长参数(元组)Python函数形参
目录
  • python函数形参
    • 位置参数
    • 关键字参数
    • 默认参数
    • 非关键字可变长参数(元组)

Python函数形参

函数的参数分类:

  • 形式参数和实际参数
  • 关键字参数
  • 可变类型参数和不可变类型参数
  • 位置参数
  • 可变长度参数
  • 默认值参数

位置参数

必须按照准确顺序将函数调用中的实参传递给函数定义中相应的形参。

def user(name, age):
	print("{} is {} years old".format(name,age)) # format()方法是寻找字符串中{}标识,然后把参数依次赋值给字符串中
user("Tom", 10)
user(10, "Tom")
# 输出
Tom is 10 years old
10 is Tom years old

关键字参数

仅针对函数的调用,通过"参数名=参数值"的方式,可以直接在实参中将名称和值关联起来。这样就不需要根据形参名字来区分参数了,即使不按照顺序,解释器也可以通过给出的关键字来匹配参数的值。

1:单个关键字参数

def user(name, age):
	print("{} is {} years old".format(name, age))
user("Tom", 10)
user(age=10, name="Tom编程客栈") # 即使实参的位置不是按照形参位置,也能匹配到相对应参数的值。
# 输出:
Tom is 10 years old
Tom is 10 years old

2:可变长度关键字参数,即字典参数。可以传递多个关键字参数

  • 如何使用:在定义函数的形参中,使用带有两个星号的形参,此时在调用函数时就可以传递多个关键字参数,这些关键字参数都会传递给带有两个星号的形参中
  • 使用场景:在预先不知道传递给函数的会是什么信息的情况下
def users(f_name, l_name, **user_info):
	prinjst("first name: " + f_name)
	print("last name: " + l_name)
	for arg_name, arg_value in user_info.items():
		print("{}:{}".format(arg_name, arg_value))
users("tom", "leaf", location="here", height=150, length=80 )
# 输出
first name: tom
last name: leaf
location:here
height:150
length:80

默认参数

编写函数时形参指定了默认值的参数,在调用函数中给形参提供了实js参时,优先使用调用函数时提供的实参,如果调用函数时没有提供实参值,使用函数定义中的默认值

Tip:关键字参数必须放在所android有位置参数的右边。如果放在左边,调用函数时传递的实参会默认从左往右进行关联,很有可能用户这个实参是传递给位置参数的,但是却被左边的关键字参数拦截接收,那么关键字参数右边的位置参数就没有实参传递。此时就会报错。

def user(name, age=12):
	print("{} is {} years old".format(name, age))
user("Tom", 10) # age参数传递了编程实参值,那么优先使用传递的实参值
user("Tom")
user(name="Tom")
user(age=10, name="Tom") # 两个参数都是关键字参数,那么参数位置颠倒也可以正确匹配到
# 输出:
Tom is 10 years old
Tom is 12 years old
Tom is 12 years old
Tom is 10 years old

非关键字可变长参数(元组)

  • 如何使用:在定义函数的形参中,使用带有一个星号的形参,此时在调用函数时就可以传递多个参数,这些参数都会被封装到一个元组中,传递给函数定义中这个带有一个星号的形参
  • 使用场景:在预先不知道传递给函数的会是什么信息的情况下
def users(*names):
	print(str(names))
	for name in names:
		print(name)
users("tech")
users("tom", "test", "amy")
# 输出
tech
tach
('tom','tets','amy')
tom
test
amy

Tip:如果要让函数接受不同类型的实参,就必须在函数定义中将接纳任意数量实参的形参放在最后,这样Python会先匹配位置实参和关键字实参,最后再将余下的实参都收集到最后一个元组实参中。

到此这篇关于关于Python中函数的几种形参的文章就介绍到这了,更多相关Python函数形参内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号