6.Python的五种Parameter(形参)和两种Argument(实参)

Parameter(形参)

function (方法)定义中的命名实体,它指定函数可以接受的一个 argument (或在某些情况下,多个实参)。有五种形参:

  • positional-or-keyword:位置或关键字,指定一个可以作为 位置参数 传入也可以作为 关键字参数 传入的实参。这是默认的形参类型,例如下面的 foo 和 bar:def func(foo, bar=None): …
  • positional-only:仅限位置,指定一个只能通过位置传入的参数。 仅限位置形参可通过在函数定义的形参列表中它们之后包含一个 / 字符来定义,例如下面的 posonly1 和 posonly2:def func(posonly1, posonly2, /, positional_or_keyword): …
  • keyword-only:仅限关键字,指定一个只能通过关键字传入的参数。仅限关键字形参可通过在函数定义的形参列表中包含单个可变位置形参或者在多个可变位置形参之前放一个 * 来定义,例如下面的 kw_only1 和 kw_only2:def func(arg, *, kw_only1, kw_only2): …
  • var-positional:可变位置,指定可以提供由一个任意数量的位置参数构成的序列(附加在其他形参已接受的位置参数之后)。这种形参可通过在形参名称前加缀 * 来定义,例如下面的 args:def func(*args, **kwargs): …
  • var-keyword:可变关键字,指定可以提供任意数量的关键字参数(附加在其他形参已接受的关键字参数之后)。这种形参可通过在形参名称前加缀 ** 来定义,例如上面的 kwargs

形参可以同时指定可选和必选参数,也可以为某些可选参数指定默认值。

Argument(实参)

在调用函数时传给 function (或 method )的值。参数分为两种:

  • 关键字参数: 在函数调用中前面带有标识符(例如 name=)或者作为包含在前面带有 ** 的字典里的值传入。举例来说,3 和 5 在以下对 complex() 的调用中均属于关键字参数:complex(real=3, imag=5) complex(**{‘real’: 3, ‘imag’: 5})
  • 位置参数: 不属于关键字参数的参数。位置参数可出现于参数列表的开头以及/或者作为前面带有 * 的 iterable 里的元素被传入。举例来说,3 和 5 在以下调用中均属于位置参数:complex(3, 5) complex(*(3, 5))

参数会被赋值给函数体中对应的局部变量。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/python/pythonhigh/2938.html

发表评论

邮箱地址不会被公开。 必填项已用*标注