如何使用instance属性来定义一个类属性?

时间:2017-03-12 12:14:48

标签: python python-3.x class attributes

我试图在 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 如果那不可能,你能给我指路吗?

1 个答案:

答案 0 :(得分:1)

如果要访问包含描述符对象的实例的属性,请使用instance / __get__的{​​{1}}参数:

__set__