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函数的参数的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数声明和调用

Python学习 :函数

Python小白到老司机,快跟我上车!基础篇(十三)

python函数声明和调用(18)

13 个非常有用的 Python 代码片段

在 Python 多处理进程中运行较慢的 OpenCV 代码片段