2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python中可变参数怎么传递的呢_在python中 你可以在命名参数后传递可变参数吗?...

python中可变参数怎么传递的呢_在python中 你可以在命名参数后传递可变参数吗?...

时间:2020-06-04 02:26:34

相关推荐

python中可变参数怎么传递的呢_在python中 你可以在命名参数后传递可变参数吗?...

can you pass variadic arguments after named parameters?

Python 3.4.3:答案是肯定的.

如果要调用仅命名固定参数的函数,请将可变参数放在函数定义中

def function(*args, bob, sally):

print(args, bob, sally)

values = [1, 2, 3, 4]

function(bob="Hi bob", sally="Hello sally", *values)

function(*values, bob="Hi bob", sally="Hello sally")

function(bob="Hi bob", *values, sally="Hello sally")

产生

(1, 2, 3, 4) Hi bob Hello sally

(1, 2, 3, 4) Hi bob Hello sally

(1, 2, 3, 4) Hi bob Hello sally

如您所见,您可以调用函数以您喜欢的任何顺序放置参数.

由于您明确地引用了实例方法,因此如果函数是一种方法(比如A类),则值得检查会发生什么

class A():

def function(self, *args, bob, sally):

print(args, bob, sally)

values = [1, 2, 3, 4]

a=A()

a.function(bob="Hi bob", sally="Hello sally", *values)

a.function(*values, bob="Hi bob", sally="Hello sally")

a.function(bob="Hi bob", *values, sally="Hello sally")

仍在工作和生产

(1, 2, 3, 4) Hi bob Hello sally

(1, 2, 3, 4) Hi bob Hello sally

(1, 2, 3, 4) Hi bob Hello sally

Python 2.7.6:答案是否定的.

>>> def function(*args, bob, sally):

File "", line 1

def function(*args, bob, sally):

^

SyntaxError: invalid syntax

另一种方法可以是为可变参数赋予名称

values = {'p1': 1, 'p2': 2, 'p3': 3, 'p4': 4}

然后你可以定义

def function(bob, sally, **kwargs):

print(kwargs['p1'])

并称之为

function(bob="Hi bob", sally="Hello sally", **values)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。