2013-04-03 2 views
2

이것은 파이썬 클래스 튜토리얼에서 찾은 샘플 코드이다. 내가이 실행되면파이썬 클래스 속성 참조하기

class MyClass: 
    i = 12345 
    def f(self): 
     return 'hello world' 

print MyClass.f 
print MyClass.i 

, 난에 "Hello World"와 "12345"의 출력 결과를 기대하고있다. 그러나 나는 이것을 얻고있다.

>>> 
<unbound method MyClass.f> 
12345 
>>> 

나는 왜 '안녕하세요 세상'을주지 않습니까? "hello world"를 출력하도록 코드를 어떻게 변경합니까? P.S 나는 파이썬 클래스와 메소드에 대한 단서가없고 막 배우기 시작했습니다.

답변

7

먼저 MyClass의 인스턴스를 만듭니다. 이 클래스의 멤버가 아닌 인스턴스 멤버이기 때문에

test = MyClass() 
print test.f() 
print MyClass.i 

당신은, 난에 대한 MyClass의 인스턴스를 만들 필요가 없습니다.

+1

충분히 명확합니다. 고마워요. –

+1

이것은 맞습니다.하지만 OP가 메소드를 * 호출해야한다고 언급하고 싶지 않을 수도 있습니다. 그렇지 않으면 파이썬은 코드를 실행하지 않고 메소드에 대한 정보를 출력 할 것입니다. – mgilson

1

항상 함수가 그 이름으로 호출되며, 이는 ()으로 표시됩니다. 따라서 사용하십시오 MyClass.f()

관련 문제