Python函数的参数

☆首页☆ 论坛 Python学习记录 Python函数的参数

标签: 

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #2502
    羊毛客
    管理员

    1.对于power(x)函数,参数x就是一个位置参数;power(x, n)函数有两个参数:x和n,这两个参数都是位置参数。

    2.默认参数:第二个参数n的默认值设定为2:
    def power(x, n=2):

    2.1必选参数在前,默认参数在后;变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

    2.2默认参数必须指向不变对象! def add_end(L=None):

    3.可变参数:可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。
    def calc(*numbers):

    4.关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

    def person(name, age, **kw):
    print(‘name:’, name, ‘age:’, age, ‘other:’, kw)

    >>> person(‘Michael’, 30)
    name: Michael age: 30 other: {}

    >>> person(‘Bob’, 35, city=’Beijing’)
    name: Bob age: 35 other: {‘city’: ‘Beijing’}

    4.1
    到底传入了哪些关键字参数,需要在函数内部通过kw检查。

    def person(name, age, **kw):
    if ‘city’ in kw:
    # 有city参数
    pass

    5.命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。调用方式如下:
    >>> person(‘Jack’, 24, city=’Beijing’, job=’Engineer’)
    Jack 24 Beijing Engineer

    5.1
    如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:

    def person(name, age, *args, city, job):
    print(name, age, args, city, job)

    5.2
    命名关键字参数可以有缺省值,从而简化调用:
    def person(name, age, *, city=’Beijing’, job):
    print(name, age, city, job)

    由于命名关键字参数city具有默认值,调用时,可不传入city参数:
    >>> person(‘Jack’, 24, job=’Engineer’)
    Jack 24 Beijing Engineer

    使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个*作为特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数。

    6.参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。