63

Python スクリプトを使用していますが、次のエラーが表示されます。

Traceback (most recent call last):
  File "C:\Users\Tim\Desktop\pop-erp\test.py", line 1, in <module>  
  s = Something()
  NameError: name 'Something' is not defined

問題を引き起こすコードは次のとおりです。

s = Something()
s.out()

class Something:
    def out():
        print("it works")

これは、Windows 7 x86-64 の下で Python 3.3.0 で実行されています。

Somethingクラスが見つからないのはなぜですか?

4

3 に答える 3

98

使用する前にクラスを定義します。

class Something:
    def out(self):
        print("it works")

s = Something()
s.out()

selfすべてのインスタンス メソッドに最初の引数として渡す必要があります。

于 2013-02-10T23:59:22.627 に答える
3

クラスのインスタンスを作成する前に、クラスを定義する必要があります。の呼び出しをSomethingスクリプトの最後に移動します。

馬の前にカートを置いて、プロシージャが定義される前に呼び出すことを試みることができますが、それは醜いハックであり、ここで定義されているように独自にロールバックする必要があります。

Pythonファイルの関数定義を順序に依存しないようにする

于 2013-02-10T23:58:47.820 に答える