2016-12-03 47 views
0

我試圖用python的描述符得到,看它是否被調用。Python的描述符「__get__」未被調用,因爲我預期,原因?

我有以下幾點:

"""This is the help document""" 
class c1(object): 
    """This is my __doc__""" 
    def __get__(s,inst,owner): 
     print "__get__" 

    def __init__(s): 
     print "__init__" 
     s.name='abc' 

class d(object): 
    def __init__(s): 
    s.c=c1() 

d1=d() 
d1.c 
print d1.c.name 

我期望它會調用得到功能。但事實上輸出

__init__ 
abc 

爲什麼我的「得到」功能不是由「D1」的實例所有者叫什麼名字?

謝謝!

回答

1

描述符必須綁定到類,而不是實例。

class d(object): 
    c = c1() 
相關問題