Jac*_*lin 42 python parameter-passing argument-unpacking
我一直在寻找将Python倾向于调用它们的数组或列表传递给函数.
我读了一些关于使用*args的内容,例如:
def someFunc(*args)
for x in args
print x
Run Code Online (Sandbox Code Playgroud)
但不确定这是对还是错.似乎没有什么能像我想的那样工作.我习惯于能够轻松地将数组传递给PHP函数,这让我感到困惑.我似乎也做不到这个:
def someFunc(*args, someString)
Run Code Online (Sandbox Code Playgroud)
因为它引发了一个错误.
我想我只是让自己完全糊涂了,并且正在找人为我清理它.
g.d*_*d.c 56
使用以下语法定义函数时:
def someFunc(*args)
for x in args
print x
Run Code Online (Sandbox Code Playgroud)
你告诉它你期望有不同数量的参数.如果你想传入一个List(来自其他语言的数组)你会做这样的事情:
def someFunc(myList = [], *args)
for x in myList:
print x
Run Code Online (Sandbox Code Playgroud)
然后你可以用这个来调用它:
items = [1,2,3,4,5]
someFunc(items)
Run Code Online (Sandbox Code Playgroud)
您需要在变量参数之前定义命名参数,在关键字参数之前定义变量参数.你也可以这样:
def someFunc(arg1, arg2, arg3, *args, **kwargs)
for x in args
print x
Run Code Online (Sandbox Code Playgroud)
这需要至少三个参数,并支持可变数量的其他参数和关键字参数.
Jos*_*shD 25
您可以像其他类型一样传递列表:
l = [1,2,3]
def stuff(a):
for x in a:
print a
stuff(l)
Run Code Online (Sandbox Code Playgroud)
这打印列表l.请记住,列表作为引用传递而不是作为深层副本传递.
您不需要使用星号来接受列表.
只需在定义中为参数指定一个名称,然后传入一个类似的列表
def takes_list(a_list):
for item in a_list:
print item
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
250680 次 |
最近记录: |