python类,它接受几个变量

0 python variables

我想写一个以(variableName, value)形式接受几个变量的类.但是,变量名仅在运行时已知,并且args的数量在运行时也是已知的.在我的班上,我有一个对象,我想设置那些参数.所以我需要循环遍历所有变量和setattribute,如下所示.

setattr (self.obj, variableName, value)
self.obj.make()
Run Code Online (Sandbox Code Playgroud)

Eri*_*got 5

你可以做:

class C(object):
    def __init__(self, **kwargs):
        for (variableName, value) in kwargs.items():
            # setattr(), etc.
Run Code Online (Sandbox Code Playgroud)

你打电话给谁C(x=3, y=123,…).

如果你真的想使用[variableName,value,...]参数列表,你可以这样做:

class C(object):
    def __init__(self, *args):
        arg_iter = iter(args)
        for (variableName, value) in zip(arg_iter, arg_iter):
            # setattr(), etc.
Run Code Online (Sandbox Code Playgroud)

你打电话给谁C('x', 3, 'y', 123,…).该zip()技巧args通过对分组arguments()列表的参数.您可能希望添加对传递的参数数量的检查(C(3)上面的代码接受,因为zip()不介意使用两个不同长度的序列).