使用Python我想在一个类中创建一个属性,但在一个字符串中包含它的名字。通常你做:如何用字符串中的名称创建属性?
blah = property(get_blah, set_blah, del_blah, "bleh blih")
其中的get_,SET_和del_blah也作了相应的规定。我试图用变量中的属性名称来做同样的事情,如下所示:
setattr(self, "blah", property(self.get_blah, self.set_blah, self.del_blah, "bleh blih"))
但这不起作用。第一种情况是blah返回属性的值,在第二种情况下,它返回一个属性,即<property object at 0xbb1aa0>
。我应该如何定义它才能工作?
通常情况下,我们定义了一个固定的,明显的,不变的名称的属性。然后我们使用getattr来灵活地引用属性。你想用这个完成什么?什么是更大的图片?可能有一种更简单的方法;请提供背景资料,以便我们能够提出一些实际可行的建议。 – 2009-07-31 13:20:34