python中可变参数怎么传递的呢_在python中,你可以在命名参数后传递可变参数吗?...
can you pass variadic arguments after named parameters?
Python 3.4.3:答案是肯定的.
如果要調(diào)用僅命名固定參數(shù)的函數(shù),請將可變參數(shù)放在函數(shù)定義中
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")
產(chǎn)生
(1, 2, 3, 4) Hi bob Hello sally
(1, 2, 3, 4) Hi bob Hello sally
(1, 2, 3, 4) Hi bob Hello sally
如您所見,您可以調(diào)用函數(shù)以您喜歡的任何順序放置參數(shù).
由于您明確地引用了實例方法,因此如果函數(shù)是一種方法(比如A類),則值得檢查會發(fā)生什么
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")
仍在工作和生產(chǎn)
(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
另一種方法可以是為可變參數(shù)賦予名稱
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)
總結
以上是生活随笔為你收集整理的python中可变参数怎么传递的呢_在python中,你可以在命名参数后传递可变参数吗?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos攻击个人电脑(用ddos攻击私人
- 下一篇: Linux根目录扩容后无法启动(linu