浅析python函数参数类型

本文详细介绍了Python函数的五种参数类型:POSITIONAL_OR_KEYWORD、POSITIONAL_ONLY、KEYWORD_ONLY、VAR_POSITIONAL和VAR_KEYWORD。阐述了它们的特性和使用规则,包括在函数定义中的顺序和限制。
摘要由CSDN通过智能技术生成

浅析python函数参数类型

在python函数定义时,截止目前到3.x的版本,一共有五种类型的参数:(注:该文章基于python 3.4.4)

  1. POSITIONAL_OR_KEYWORD(位置或关键字参数)
  2. POSITIONAL_ONLY(仅位置参数)
  3. KEYWORD_ONLY(仅关键字参数)
  4. VAR_POSITIONAL(任意数量的位置参数)
  5. VAR_KEYWORD(任意数量的关键字参数)

第一种:位置或关键字参数:
先上文档的定义:

  • Parameter.POSITIONAL_OR_KEYWORD - value may be supplied as either a keyword or positional argument (this is the standard binding behaviour for functions implemented in Python.)

意思就是该参数,运行两种方式的传递:位置和关键字。

def foo(arg1, arg2):
    print(arg1, arg2)
#以位置参数传递
foo('one', 'two')
#output:
one two

#以关键字参数传递:
foo(arg1='one', arg2='two')
foo(arg2='two', arg1='one')
#output:
one two
one two

#混合方式:
foo('one', arg2='two')
#output:
one two

#注意:关键字参数不能先于位置参数被传递
foo(arg1='one', 'two')
#output:

    foo(arg1='one', 'two')
                        ^
SyntaxError: non-keyword arg after keyword arg

第二种:仅位置参数:

  • Parameter.POSITIONAL_ONLY - value must be supplied as a positional argument.
    Python has no explicit syntax for defining positional-only parameters, but many built-in and extension module functions (especially those that accept only one or two parameters) accept them.

意思就是:这类仅位置参数只允许接收位置参数传递,目前还没有能够让开发者自行定义接收该参数的函数,简而言之,这一般会在python内建函数中出现,如:

abs(-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值