python类,该类接受两个变量
我想编写一个类,它以(python类,该类接受两个变量,python,variables,Python,Variables,我想编写一个类,它以(variableName,value)的形式接受两个变量。但是,只有在运行时才知道变量名,并且在运行时才知道参数的数量。在我的类中,我有一个要设置这些参数的对象。所以我需要循环所有变量和setattribute,如下所示 setattr (self.obj, variableName, value) self.obj.make() 你可以做: class C(object): def __init__(self, **kwargs): for (v
variableName,value
)的形式接受两个变量。但是,只有在运行时才知道变量名,并且在运行时才知道参数的数量。在我的类中,我有一个要设置这些参数的对象。所以我需要循环所有变量和setattribute,如下所示
setattr (self.obj, variableName, value)
self.obj.make()
你可以做:
class C(object):
def __init__(self, **kwargs):
for (variableName, value) in kwargs.items():
# setattr(), etc.
class C(object):
def __init__(self, *args):
arg_iter = iter(args)
for (variableName, value) in zip(arg_iter, arg_iter):
# setattr(), etc.
您可以使用C(x=3,y=123,…)
调用它
如果确实要使用[variableName,value,…]参数列表,可以执行以下操作:
class C(object):
def __init__(self, **kwargs):
for (variableName, value) in kwargs.items():
# setattr(), etc.
class C(object):
def __init__(self, *args):
arg_iter = iter(args)
for (variableName, value) in zip(arg_iter, arg_iter):
# setattr(), etc.
用C('x',3',y',123,…)调用它。zip()
技巧将参数列表(args
)中的参数成对分组。您可能希望添加对传递的参数数量的检查(C(3)
被上述代码接受,因为zip()
不介意使用两个不同长度的序列)。您可以执行以下操作:
class C(object):
def __init__(self, **kwargs):
for (variableName, value) in kwargs.items():
# setattr(), etc.
class C(object):
def __init__(self, *args):
arg_iter = iter(args)
for (variableName, value) in zip(arg_iter, arg_iter):
# setattr(), etc.
您可以使用C(x=3,y=123,…)
调用它
如果确实要使用[variableName,value,…]参数列表,可以执行以下操作:
class C(object):
def __init__(self, **kwargs):
for (variableName, value) in kwargs.items():
# setattr(), etc.
class C(object):
def __init__(self, *args):
arg_iter = iter(args)
for (variableName, value) in zip(arg_iter, arg_iter):
# setattr(), etc.
用C('x',3',y',123,…)调用它。zip()
技巧将参数列表(args
)中的参数成对分组。您可能希望添加对传递的参数数量的检查(C(3)
被上述代码接受,因为zip()
不介意使用两个不同长度的序列)