假设我有这样一个类:
class Alphabet(object):
__init__(self):
self.__dict = {'a': 1, 'b': 2, ... 'z': 26}
@property
def a(self):
return self.__dict['a']
@property
def b(self):
return self.__dict['b']
...
@property
def z(self)
return self.__dict['z']
定义这些属性将是一项漫长而繁琐的任务,而且似乎高度冗余。有没有一种方法可以动态创建这些属性?我知道可以使用内置的setattr动态创建属性,但我想要对读取/写入/删除访问进行控制(因此我想使用属性)。谢谢!
@property\ndef something()
等同于something = property(something)
。在这种情况下,这相当于执行self.setattr('a', property(lambda self: self.__dict['a']))
。 - Joel Cornett