2013-04-03 104 views
2

這是一個示例代碼,我從其中一個python類教程中找到。Python類屬性引用

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

print MyClass.f 
print MyClass.i 

一旦我運行這個,我期待輸出結果的「你好世界」和「12345」。但相反,我越來越這

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

爲什麼它不給我'你好世界'?如何更改我的代碼以便打印出「Hello World」?我沒有關於Python類和方法的線索,只是開始學習。

回答

7

首先創建一個MyClass的實例。

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

您不需要爲i創建MyClass的實例,因爲它是類成員,而不是實例成員。

+1

夠清楚了。非常感謝 –

+1

這是對的,但你也可能想提到OP需要*調用*方法,否則python將只打印出有關該方法的信息而不是運行它的代碼。 – mgilson

1

總是有一個函數被其名稱調用,它由()表示。因此,使用 MyClass.f()