我有一个看起来像这样的函数:
def getColumn(self, name, type, **args):
现在我想要一个功能
def getColumns(self, columns)
我可以传递一个包含元组的元组,其中该元组中的每个条目代表该元组 要传递的参数是getColumn。但是,我不想使用命名参数作为名称和类型。
所以我不想像这样使用它:
def getColumns(self, columns):
columns = [self.getColumn(**data) for data in columns]
column_data = ( {'name' : 'myName', 'type' : 'myType', 'other' : 'myOther'},
{'name' : 'myName2', 'type' : 'myType2', 'other' : 'myOther2'})
如何摆脱'name':
和'type':
?
答案 0 :(得分:2)
这样的东西?
column_data = (('myName', 'myType', {'other': 'myOther'}),
('myName2', 'myType2', {'other2': 'myOther2'}))
def getColumn(self,name,type,**rest):
pass
def getColumns(self,columns):
return [self.getColumn(name, type, **rest) for name, type, rest in columns]
您无需解包 - 如果您在两个地方rest
之前移除**,该函数将会使用字典。
如果您只是不想为参数指定名称,请使用* args而不是** kwargs作为gnibbler建议。
答案 1 :(得分:1)
def getColumns(self, columns):
columns = [self.getColumn(*data) for data in columns]
column_data = (('myName', 'myType', 'myOther'),
('myName2', 'myType2', 'myOther2'))