我想创建一个具有特定属性的对象。我想动态地添加它们。与Adding a Method to an Existing Object Instance类似,但使用属性而不是方法。下面是一个简单的例子。在
我喜欢动态创建:
class A():
@property
def a(self):
return self._a
@a.setter
def a(self, x):
self._a = 10*x
@property
def b(self):
return self._b
@b.setter
def b(self, x):
self._b = 10*x
要用方法做到这一点,我要做的是:
^{pr2}$对于我尝试的属性:
class B():
def __init__(self):
for i in range(70,80):
def tmp(self, x):
self._x = i*x
self.__dict__[chr(i)] = property(fget=lambda self: self._i, fset=tmp)
我还找到了types.DynamicClassAttribute
,但我不确定这是否有用。在
这里提出了一个相关的问题,关于向类添加属性(在python 2中): Dynamically adding @property in python。我不知道如何将其扩展到类的实例。在
我想为lantz项目编写一个“驱动程序”,通过PyPylon包装器使用相机。相机有一些事先不知道的属性。我想将所有属性添加为Feats(一些由lantz提供的decorator,它看起来类似于一个属性:它有一个getter和一个setter)。在
编辑:看起来How to add property to a class dynamically?是同一个问题
This comment给出了答案的提示。在
follow函数(灵感来自1)向类的单个实例添加属性。它通过动态创建一个新类来实现。在
示例和测试:
^{pr2}$相关问题 更多 >
编程相关推荐