Python函数的参数
Posted kwebi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数的参数相关的知识,希望对你有一定的参考价值。
位置参数:
比如:
>>> def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s
其中x和n分别占了一个位置,所以称为位置参数,
位置参数是必须传进来的!
默认参数:
比如:
>>> def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
必选参数在前,默认参数在后,当不传入默认参数时,
函数会默认为指定的值。传入默认参数时,会修改为
传入的值。定义默认参数要牢记一点:默认参数必须指向不变对象!
可变参数:
>>> def my_sum(*numbers): sum = 0 for n in numbers: sum = sum + n return sum
调用该函数时,可以传入任意个参数,包括0个参数
Python允许你在list或tuple前面加一个*
号,变成可变
参数传进去。
关键字参数:
>>> def person(name, sex, **kw): print(‘name:‘, name, ‘sex‘, sex, ‘other:‘, kw)
关键字参数允许你传入0个或任意个含参数名的参数
调用该函数时,可以只传入必选参数,
也可以传入任意个数的关键字参数。
也可以先组装出一个dict,在前面加**,
传进去。
命名关键字参数:
>>> def person(name, age, *, city, sex): print(name, age, city, sex)
要限制关键字参数的名字,就可以用命名关键字参数
命名关键字参数需要一个特殊分隔符*
若已经有了一个可变参数,就不再需要一个特殊分隔符*
>>> def person(name, age, *args, city, sex): print(name, age, args, city, sex)
命名关键字参数必须传入参数名
指定的命名关键字参数也必须传入:
>>> person(‘a‘,12,1212,212,1212,city=‘aaa‘) Traceback (most recent call last): File "<pyshell#365>", line 1, in <module> person(‘a‘,12,1212,212,1212,city=‘aaa‘) TypeError: person() missing 1 required keyword-only argument: ‘job‘
当命名关键字参数有默认值时,可以不传入该参数
如果没有可变参数,就必须在命名关键字参数前
有*号,否则无法分辨命名关键字参数与位置参数
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
以上是关于Python函数的参数的主要内容,如果未能解决你的问题,请参考以下文章