动态创建python属性函数

时间:2014-09-01 15:11:01

标签: python python-2.7 properties

我想动态创建属性方法。

这意味着,例如,我希望第一类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)

1 个答案:

答案 0 :(得分:3)

您不能,而不是实例property对象需要成为其所依赖的descriptor protocol类的一部分。

您可以使用__getattr____setattr____delattr__挂钩代替动态代理属性访问。