我想创建一个类,其实例的属性是在实例化时定义的。
起初我以为我应该这样做,
class TestData(object): # Example via http://stackoverflow.com/questions/2641484/class-dict-self-init-args
def __init__(self, *args, **kwargs):
super(TestData, self).__init__()
for arg in args:
self.arg = arg
但是这会将所有参数分配给同一个属性self.arg
并且不起作用。
答案 0 :(得分:0)
根据评论的建议进行了修改,我找到了适合我的解决方案:
class TestData(object): # Example via http://stackoverflow.com/questions/2641484/class-dict-self-init-args
def __init__(self, *args, **kwargs):
super(TestData, self).__init__()
self.__dict__.update(kwargs)
for arg in args:
setattr(self, arg, arg)
如果在实例化后需要添加其他属性,可以通过调用setattr(instancename, arg, val)