将List作为参数传递给另一个方法,但该方法在Python中接受参数为Tuple?

时间:2017-07-27 18:17:37

标签: python python-3.x

我将List作为参数传递给另一个方法。但是接受参数为Tuple的方法。

class A():
   def method(self):
      lst = [{'CITY': 'Boston', 'STATE': 'MA'},
           {'CITY': 'New York', 'STATE': 'NY'}]
      self.method1(self,*lst)

   def method1(self,*param):
      print(type(param))
      print(param)

b =A()
b.method() # Printing type as Tuple

我希望列表不是元组。任何建议!

1 个答案:

答案 0 :(得分:0)

执行*lst后,您将lst的内容解包为函数method1的参数。函数method1实际上是因为你已完成*param而采取了多个参数 - 它需要的参数与你传递的一样多。

当你解包lst并将其传递给method1时,它会按照定义将其作为元组。

观察:

>>> L = ['hi', 'hello']
>>> def A(*args):
...     print(args)
... 
>>> A(*L)
('hi', 'hello')

要解决您的问题,请同时删除星号并提取list个对象 - 不要打开列表包装。