Python converting *args to list

后端 未结 3 1265
长情又很酷
长情又很酷 2021-02-07 14:34

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

相关标签:
3条回答
  • 2021-02-07 15:09

    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__().

    0 讨论(0)
  • 2021-02-07 15:12

    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']

    0 讨论(0)
  • 2021-02-07 15:15

    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]]]

    0 讨论(0)
提交回复
热议问题