Python函数参数的分类
- python函数参数的分类
- 必须参数
- 关键字参数
- 默认参数
- 不定长参数
1. python函数参数的分类
上面的标题已经说明问题,python的参数分为一下四类分别为
必须参数,关键字参数,默认参数和不定长参数
2. 必须参数
必须参数是必须按照顺序和相同的数量传入到函数中
def printNumber(a):
print(a)
printNumber() #如果不传入必须参数,程序将会报错
TypeError: printNumber() missing 1 required positional argument: 'a'
3. 关键字参数
使用关键字参数,允许传入的参数值与声明的顺序不一致,
def printInfo(name, age):
print('name: {}, age: {}'.format(name, age))
printInfo(name='jack', age=23)
#或者
printInfo('jack', 23)
#但是不能把关键字参数放到必须参数的前面。
printInfo(age=23, 'jack')
疑问: 怎样区分必须参数和关键字参数呢?
如果单从函数的定义很难去区分,关键字参数的目的是让代码更可读,建议使用关键字参数,及时改参数为必须参数。
4. 默认参数
如果在传入参数中,没有指定,则使用默认参数。
5. 不定长参数
不定长参数要在参数前面加上*
def function_name([formal_function_paramter], *args):
print('formal_function_paramter')
print(args) # args参数将包装成tuple
def printinfo( arg1, *vartuple ):
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
输出
70
(60, 50)
如果在参数前面加上两个*,则以字典的形式传入
def printInfo(name, **kwargs):
print(name)
for key, value in kwargs.items():
print('key: {}, value: {}'.format(key, value))
printInfo("jack", age=34, moneny=1000)
输出:
jack
key: moneny, value: 1000
key: age, value: 34
6. 强制使用关键字参数 *
def add(a,b,*,c):
print(a + b + c)
add(10, 20, c=30)
输出:
60