我最近编写了一些需要标记属性的函数:
def fn1(): pass
fn1.mark = True
实际的标记是由装饰者完成的,但它既不在这里也不在那里。我担心的是,当我以相同的方式标记类中的方法时,在绑定方法时标记将不可见:
class A:
def meth1(): pass
meth1.mark = True
但实际上该属性是可见的:
>>> fn1.mark
True
>>> A.meth1.mark
True
>>> A().meth1.mark
True
但是,不能在绑定方法中分配或删除属性,因为它可以在函数中:
>>> A().meth1.mark = False
AttributeError: 'method' object has no attribute 'mark'
>>> del A().meth1.mark
AttributeError: 'method' object has no attribute 'mark'
方法的属性在绑定时如何使其可见?
LEATH
相关分类