11 Python函数参数分类

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 )
输出
706050

如果在参数前面加上两个*,则以字典的形式传入

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章