0
我想寫一個類,它接受(variableName, value
)形式的幾個變量。然而,只有在運行時才知道變量名稱,並且在運行時也知道參數的個數。在我的課上,我有一個對象,我想設置這些參數。所以我需要循環所有變量和setattribute如下。python類,需要幾個變量
setattr (self.obj, variableName, value)
self.obj.make()
我想寫一個類,它接受(variableName, value
)形式的幾個變量。然而,只有在運行時才知道變量名稱,並且在運行時也知道參數的個數。在我的課上,我有一個對象,我想設置這些參數。所以我需要循環所有變量和setattribute如下。python類,需要幾個變量
setattr (self.obj, variableName, value)
self.obj.make()
你可以這樣做:
class C(object):
def __init__(self, **kwargs):
for (variableName, value) in kwargs.items():
# setattr(), etc.
,你將與C(x=3, y=123,…)
調用。
如果你真的想使用[VARIABLENAME,值,...]的參數列表,你可以這樣做:
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()
不介意使用兩個不同長度的序列)。