当描述符直接在类上调用时,为什么描述符变得无效?

2024-03-29 11:02:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在学习Python中的描述符时,我尝试了以下代码:

class D(object) :

    def __init__(s) :
        s.a = ''

    def __get__(s, ins, own) :
        print 'desc get'
        return s.a

    def __set__(s, ins, val) :
        print 'desc set'
        s.a = val


class C(object) :
    d = D()


C.d = 'danger'
c = C()
c.d = 'some str'

为什么在执行C.d = 'danger'时,描述符会从C.__dict__中删除?你知道吗


Tags: 代码getreturnobjectinitdefvaldanger
1条回答
网友
1楼 · 发布于 2024-03-29 11:02:21

在您的示例中,当您做作C.d = 'danger'时,您将用值“danger”覆盖描述符。C.d不再是描述符,现在是字符串“danger”。你知道吗

相关问题 更多 >