python 函数的参数梳理
1.位置参数
def func(x,y)
2.默认参数
def func(x,y=None)
y 在未传参的情况下 默认使用“None”,默认参数 需放在后面.
3.可变参数
def func(x,*args)
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple.
def func(x,*args):
#所有参数
print(x,*args)
print("可变参数类型:{}".format(type(args)))
for n in args:
print(n)
if __name__=="__main__":
func(123,55,5)
func(123)
运行结果: 123 55 5 可变参数类型:<class 'tuple'> 55 5 123 可变参数类型:<class 'tuple'>
4.关键字参数
def func(x,**kwargs)
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict.
def func2(x,**kwargs):
# 所有参数
print(x,kwargs)
#打印出所有关键字参数
for k in kwargs:
print("{}={}".format(k,kwargs[k]))
#关键字的key
print(*kwargs)
运行结果:
2 {'key1': 'value1', 'key2': 'value2'}
key1=value1
key2=value2
key1 key2
----------
2 {'city': 'Beijing', 'job': 'Engineer'}
city=Beijing
job=Engineer
city job
5.命名关键字参数
def func(*,arg1,arg2)
命名关键字参数 类似于位置参数,指定的参数 必须填写且需使用上参数名,否则报错
def func3(*,arg1,arg2):
print(arg1,arg2)
if __name__=="__main__":
func3(arg1='s',arg3='ss')
参数名错误 报错:
func3(arg1='s',arg3='ss')
TypeError: func3() got an unexpected keyword argument 'arg3'
def func3(*,arg1,arg2):
print(arg1,arg2)
if __name__=="__main__":
func3(4,5)
不带参数名报错:
func3(4,5)
TypeError: func3() takes 0 positional arguments but 2 were given
注:
- 在Python中定义函数,可以用位置参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用;但是参数定义的顺序必须是:位置参数、默认参数、可变参数、命名关键字参数和关键字参数。
- 虽然可以组合多达5种参数,但不要同时使用太多的组合,否则函数接口的可理解性很差。

浙公网安备 33010602011771号