2009-12-26 2 views

답변

2

class __b__ 문은 정확히 한 번 실행됩니다 (class a 문이 실행될 때). 이것은 사용자가 print int 일 경우에만 해당됩니다. 다양한 인스턴스 생성은 완전히 관련이 없습니다 (아무도 print과 아무 관련이 없습니다).

3

당신은 당신이 뭘 하려는지 설명하지 않지만, 난 당신이 무슨 뜻인지 생각하는 것은 :

class a: 
    def __b__(object): 
     print 'bbb' 
+1

왜 아래 표를 얻습니까? 이것은 질문이 묻는 것일 수 있습니다. 얼마나 자주 파이썬에서 서브 클래스를 사용합니까? –

4
파이썬 클래스를 생성 할 때, 그것은 등, 따라서 클래스 네임 스페이스를 만드는 클래스 정의 정확히 한 번만 내에서 코드를 실행하여 그렇게

...

코드를 호출 할 때마다 코드를 실행하려면 코드를 __init__ 메서드 (생성자)에 넣어야합니다.

class a: 
    class b: 
     def __init__(self): 
      print 'bbb' 

a.b() 
a.b() 

그러면 bbb 2x가 인쇄됩니다. class b은 단순히 class a의 속성이기 때문에 a.b에 액세스하려면 a()의 인스턴스가 필요하지 않습니다. 파이썬으로 클래스를 중첩하면 실제로 많은 이득을 얻지 못합니다.

파이썬은 이중 밑줄로 시작하고 끝나는 단어를 예약하기 때문에 __b__을 사용하지 않았습니다.

+0

그냥 메모; 파이썬 2.x를 사용하고 있다면, print는 함수가 아니기 때문에 괄호를 추가하면 이상한 결과가 나올 수 있습니다. –

관련 문제