python function 参数总汇
参数类型
python函数具有非常灵活的参数形态,参数可以为空,也可以非常复杂。 由简入繁: positional argument default argument variable argument keyword argument name keyword argument一、positional argument位置参数
位置参数,这些参数在调用函数(call function)时位置要固定。
1、格式
def functionname(positonalArgument):
“函数文档字符串”
function_suite
return [expression]
2、示例
def printinfo(name):
print('Name:{0}'.format(name))
printinfo('这是位置参数') # Name:这是位置参数
二、default argument 默认参数
默认参数,就是传参时没有给函数传入参数时,函数默认的参数。
1、格式
def functionname(defaultArgument=Value):
“函数说明字符串”
function_suite
return [expression]
defaultArgument=Value;Value是参数defaultArgument的默认值
2、实例
def printinfo(default=8):
print('default:{0}'.format(default))
printinfo() # default:8
printinfo(10) # default:10
三、variable argument可变参数
可变参数,见名知意,参数传入的数量可以是0个1个2个…n个。
1、格式
def functionname(arg1, arg2=v, *args):
“函数_文档字符串”
function_suite
return [expression]
其中位置参数arg1、默认参数arg2=v,为可选
2、实例
def printinfo(*args):
for var in args:
print(var)
printinfo(10) # 10
printinfo(70, 60, 50)
# 70
# 60
# 50
可变参数允许传入零个到任意个参数,它们在函数调用时自动组装为一个元组 (tuple)。
四、keyword argument关键字参数
关键字参数,key=value形式,以键值方式存储,自动组装成字典形式。
1、格式
def functionname(arg1, arg2=v, args, **kw):
“函数_文档字符串”
function_suite
return [expression]
2、实例
def printinfo(arg1, *args, **kwargs):
print(arg1)
print(args)
print(kwargs)
printinfo(70, 60, 50)
# 70
# (60, 50)
# {}。
printinfo(70, 60, 50, a='', b=2)
# 70
# (60, 50)
# {'a': 1, 'b': 2}
a=’ '和b=2自动封装成字典(dict)形式,同时遵守字典的规则。
五、name keyword argument 命名关键字参数
命名关键字参数、顾名思义,就是在关键字参数的基础上指定key的名字。
1、格式
def functionname(arg1, arg2=v, args, *, nkw, *kw):
“函数_文档字符串”
function_suite
return [expression]
- *, nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw 前面加个分隔符 *。
- 使用命名关键字参数时,要特别注意不能缺少参数名。
2、示例
def printinfo(arg1, *, nkw, **kwargs):
print(arg1)
print(nkw)
print(kwargs)
printinfo(70, nkw=10, a=1, b=2)
# 70
# 10
# {'a': 1, 'b': 2}
printinfo(70, 10, a=1, b=2)
# TypeError: printinfo() takes 1 positional argument but 2 were given
六、参数组合
在 Python 中定义函数,可以用位置参数、默认参数、可变参数、命名关键字参数和关键字参数,这 5 种参数中的 4 个都可以一起使用,但是注意,参数定义的顺序必须是:
-
位置参数、默认参数、可变参数和关键字参数。
-
位置参数、默认参数、命名关键字参数和关键字参数。
-
要注意定义可变参数和关键字参数的语法:
- *args 是可变参数,args 接收的是一个 tuple
- **kw 是关键字参数,kw 接收的是一个 dict
总结
本次了解了参数的类型及格式。