具有可变数量的对象和其他参数列表的方法

时间:2011-01-28 09:27:10

标签: python

我想创建一个接受可变数量对象的方法,并根据提供给该方法的其他参数的数量执行一些操作(如调用对象方法)。

e.g。我有一个带有方法updateTable()的对象X,它接受a,b作为参数。

我想要做的是更新不同对象表的公共代码放在一个方法,例如updateAllTables()。

是否可以将对象和不同的参数捆绑到一个结构中,并提供给接受可变数量的这些结构的方法。

2 个答案:

答案 0 :(得分:5)

要使Python函数接受任意数量的参数,只需执行以下操作:

def my_function(*args, **kwargs):

现在args将是传递给该函数的所有位置参数的列表,kwargs是所有关键字参数的字典。

由于这是一种方法,您应该明确接受任意args之外的self

def my_method(self, *args, **kwargs):

答案 1 :(得分:0)

  1. 可变数量的参数可以作为args列表(通​​常用*args表示)或作为键值对**kwargs发送。您应该注意**kwargs如果您同时通过*args,则应getattr(yourobject,'yourfunction')(params,*args,**kwargs)

  2. 您可以使用以下语法动态调用方法{{1}}

相关问题