我试图在 init 中使用我的类属性attr
中的名称,但似乎不可能。
这是代码:
class B:
def __init__(self, val):
self.val = val
def __get__(self, instance, owner):
return owner.valEditNew(self.val)
def __set__(self, instance, value):
return
class A:
def __init__(self, name = 'def_name'):
self.name = name
attr = B('G120')
def valEditNew(val):
val += ' @edited'
return val
a = A('JJ')
print(a.attr)
如果我使用self.name或name或......代替G120
>>>
builtins.NameError: name 'self' is not defined
如果那不可能,你能给我指路吗?
答案 0 :(得分:1)
如果要访问包含描述符对象的实例的属性,请使用instance
/ __get__
的{{1}}参数:
__set__