这就是我要找的:
def __init__(self, *args):
list_of_args = #magic
Parent.__init__(self, list_of_args)
我需要将 *args 传递给单个数组,以便:
MyClass.__init__(a, b, c) == Parent.__init__([a, b, c])
这就是我要找的:
def __init__(self, *args):
list_of_args = #magic
Parent.__init__(self, list_of_args)
我需要将 *args 传递给单个数组,以便:
MyClass.__init__(a, b, c) == Parent.__init__([a, b, c])
没什么太神奇的:
def __init__(self, *args):
Parent.__init__(self, list(args))
在 内部__init__
,变量args
只是一个包含任何传入参数的元组。事实上,Parent.__init__(self, args)
除非你真的需要它是一个列表,否则你可能只使用它。
作为旁注, usingsuper()
优于Parent.__init__()
.
我在 senddex 教程中找到了一段代码来处理这个问题:
https://www.youtube.com/watch?v=zPp80YM2v7k&index=11&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ
尝试这个:
def test_args(*args):
lists = [item for item in args]
print lists
test_args('Sun','Rain','Storm','Wind')
结果:
['太阳','雨','风暴','风']
如果您正在寻找与@simon 的解决方案相同方向的东西,那么:
def test_args(*args):
lists = [*args]
print(lists)
test_args([7],'eight',[[9]])
结果:
[[7],'八',[[9]]]