我将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
我希望列表不是元组。任何建议!
答案 0 :(得分:0)
执行*lst
后,您将lst
的内容解包为函数method1
的参数。函数method1
实际上是因为你已完成*param
而采取了多个参数 - 它需要的参数与你传递的一样多。
当你解包lst
并将其传递给method1
时,它会按照定义将其作为元组。
观察:
>>> L = ['hi', 'hello']
>>> def A(*args):
... print(args)
...
>>> A(*L)
('hi', 'hello')
要解决您的问题,请同时删除星号并提取list
个对象 - 不要打开列表包装。