使用locals()[' some_string']方法创建类实例变量

时间:2014-07-06 04:13:59

标签: python string class variables concatenation

有时我需要使用变量创建带后缀的新变量,我可以使用以下内容:

Number=5
locals()['First'+str(Number)]=5

导致变量 First5 = =。

如何在类实例中执行相同的操作?

class foo:
    def appender(self,bar):
        for i in range(bar):
            self.locals()['Number'+str(i)]=i
#-----
qq=foo()
qq.appender(3) #issues...

我想创建qq.Number0,qq.Number1和qq.Number2,但它告诉我foo没有本地实例。如何连接字符串以在我的实例中创建新变量? 谢谢!

1 个答案:

答案 0 :(得分:0)

要动态设置类实例的属性,可以使用内部方法__setattr__

class Foo(object):
    def appender(self, bar):
        self.__setattr__('Number' + str(bar), bar)

哪个应该给你:

>>>> foo = Foo()
>>>> foo.appender(1)
>>>> foo.Number1
1