2016-12-03 1 views
0

나는 파이썬의 설명자인 을 얻으려는 시도가 있었는지 확인하기 위해을 얻었다.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 

나는 그것이 기능을 얻을 호출 할 것으로 기대 :

나는 다음있어. 하지만 출력이 내 " 얻을"기능 "D1"의 인스턴스 소유자가 호출되지 않은 이유는

__init__ 
abc 

은 사실?

감사합니다.

답변

1

설명자는 인스턴스가 아닌 클래스에 바인딩되어야합니다.

class d(object): 
    c = c1() 
관련 문제