Python converting *args to list

*爱你&永不变心* 提交于 2019-12-05 18:20:40

问题


This is what I'm looking for:

def __init__(self, *args):
  list_of_args = #magic
  Parent.__init__(self, list_of_args)

I need to pass *args to a single array, so that:

MyClass.__init__(a, b, c) == Parent.__init__([a, b, c])

回答1:


Nothing too magic:

def __init__(self, *args):
  Parent.__init__(self, list(args))

Inside of __init__, the variable args is just a tuple with any arguments that were passed in. In fact you can probably just use Parent.__init__(self, args) unless you really need it to be a list.

As a side note, using super() is preferable to Parent.__init__().




回答2:


There is this piece of code that I picked up in sentdex tutorials that deals with this:

https://www.youtube.com/watch?v=zPp80YM2v7k&index=11&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ

Try this:

def test_args(*args):
    lists = [item for item in args]
    print lists

test_args('Sun','Rain','Storm','Wind')

Result:

['Sun', 'Rain', 'Storm', 'Wind']




回答3:


If you're looking for something in the same direction as @simon 's solution, then:

def test_args(*args): lists = [*args] print(lists) test_args([7],'eight',[[9]])

Result:

[[7], 'eight', [[9]]]



来源:https://stackoverflow.com/questions/15489091/python-converting-args-to-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!