我想动态创建属性方法。
这意味着,例如,我希望第一类A与第二类相同。
有什么办法吗?
class A(object):
def __init__(self):
self._a = 10
self.createPropertyMethod(a, self._a, getFunc, setFunc, delFunc)
def createPropertyMethod(self, name, value, getFunc, setFunc, delFunc)
#TODO
class A(object):
def __init__(self):
self._a = 10
@property
def a(self):
return getFunc(self._a)
@a.setter
def a(self, value):
setFunc(self._a, value)
@a.deleter
def a(self):
delFunc(self._a)
答案 0 :(得分:3)
您不能,而不是实例。 property
对象需要成为其所依赖的descriptor protocol类的一部分。
您可以使用__getattr__
,__setattr__
和__delattr__
挂钩代替动态代理属性访问。