星号参数

There are 1 entries for the tag 星号参数

Python函数的各种参数(含星号参数)

MitchellChu 2014-06-23 编程语言

Python中函数的参数有4种形式,分别是: 位置或关键字参数(Positional-or-keyword parameter) 仅位置的参数(Positional-only parameter) 任意数量的位置参数(var-positional parameter) 任意数量的关键字参数(var-keyword parameter) 第一种:位置或关键字参数 这种参数是Python中默认的参数类型,定义这种参数后,可以通过位置参数,或者关键字参数的形式传递参数: ## 位置或者关键字参数 ## 这个是Python的默认参数类型 ## 示例:arg2提供了默认value def func(arg1, arg2="World!"): print arg1, arg2 ## func可以通过位置参数形式调用 func("Hello", "MitchellChu") ## 也可以通过关键字参数的形式来调用func func(arg1="Hello", arg2="World!") ## 当然,混合的方式也是完全没有问题的 func("Hello", arg2="World!") ## 不过如果你不能将关键字参数优先于位置参数传递给函数(方法) ## 这个调用方法是不能接受的,因为优先级不一样.后面会说 func(arg1="Hello", "World!") ## ERROR  第二种方式:仅适用位置参数的形式 这种形式在需要将参数传递给函数(方法)时,仅能通过位置参数的传递方式。这种形式对于Python的开发者来说,暂时并没有办法使用。这种形式现在仅存在Python的很多内建的函数上: ## Positional-only parameter has no syntax to define ## 虽然无定义方法,但内建的很多函数都是仅接受位置参数的 abs(-3) ## correct abs(a=3) ## wrong ## Traceback (most recent call last): ## File "<stdin>", line 1, in <module> ## TypeError: abs() takes no keyword arguments pow(x=2,y=3) ## Traceback (most recent call last): ## File "<stdin>", line 1, in <module> ## TypeError: pow() takes no keyword arguments pow(2,3) ## 8  第三种:任意数量的位置参数(带单个星号参数) 任意数量的位置参数在定义的时候是需要一个星号前缀来表示,在传递参数的时候,可以在原有参数的后面添加任意多个参数,这些参数将会被放在元组内提供给函数(方法): ## var-positional parameter ## 定义的时候,我们需要添加单个星号作为前缀 def func(arg1, arg2, *args): ...

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。