基本上,我想检查另一个对象,看看在处理object.aq_chain中的项之前是否设置了属性。
当覆盖getattr和getattribute时,我似乎无法避免无限递归。
更新
示例:
import ExtensionClass, Acquisition
class Folder(ExtensionClass.Base): pass
class File(Acquisition.Implicit): pass
parent1 = Folder()
parent1.foo = 1
parent2 = Folder()
parent2.foo = 2
child = File()
parent1.child = child
child.otherparent = parent2
print parent1.child.foo # prints 1, but i want it to print 2
如果不言而喻,我正在尝试使用API。
答案 0 :(得分:0)
要构建采集链,您需要使用Acquisition包装器的__of__
方法:
>>> wrapped = child.__of__(parent2)
>>> assert wrapped.aq_parent is parent2
True