2

これは、Python クラスのチュートリアルの 1 つから見つけたサンプル コードです。

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」が表示されないのはなぜですか? 「hello world」を出力するようにコードを変更するにはどうすればよいですか? PS私はPythonのクラスとメソッドについての手がかりがなく、学習を始めたばかりです。

4

2 に答える 2

7

最初に MyClass のインスタンスを作成します。

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

MyClass for i のインスタンスを作成する必要はありません。これは、インスタンス メンバーではなくクラス メンバーであるためです。

于 2013-04-03T03:17:31.850 に答える
1

関数は常に、 で表される名前で呼び出され()ます。だから使う MyClass.f()

于 2013-04-03T03:08:14.767 に答える