码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数的参数

时间:2018-06-02 13:31:41      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:限制   一点   require   back   module   name   while   ror   位置   

位置参数:

比如:

>>> 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函数的参数

标签:限制   一点   require   back   module   name   while   ror   位置   

原文地址:https://www.cnblogs.com/kwebi/p/9125122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!