1

私はPythonが初めてで、次のようなコードがあります。

class Configuration:
 @staticmethod
 def test():
    return "Hello World"

testこのような他のpythonコードからメソッドを呼び出すと:

import test

test.Configuration.test()

次のようなエラーが表示されます。

Traceback (most recent call last):
  File "example.py", line 3, in <module>
    test.Configuration.test()
AttributeError: 'module' object has no attribute 'test'

私はどこで間違いを犯していますか?

編集:

私のディレクトリ構造:

root
--example.py
--test
----__init.py__
----Configuration.py
4

2 に答える 2

2

Python モジュール名とそれに含まれるクラスは別のものです。フルパスを使用する必要があります:

import test

print test.Configuration.Configuration.test()

パッケージtestには という名前のモジュールがありConfiguration、そのモジュールConfigurationにクラスがあります。

Python は、Java とは異なり、クラスの外部でもメソッドを定義できることに注意してください。これを静的メソッドにする必要はありません。また、クラスごとに別のファイルを使用する必要もありません。

于 2013-04-22T10:27:17.663 に答える
0

これは標準ライブラリ モジュール ( http://docs.python.org/2/library/test.html ) の名前であり、おそらくそのモジュールをインポートしているため、モジュールの名前を「test」以外の名前に変更してみてください。あなた自身の代わりに。もう 1 つのオプションは、テスト モジュールを含むディレクトリを PYTHONPATH 環境変数に追加することです。これにより、Python は標準ライブラリ モジュールの代わりにそれを見つけることができます (ただし、標準モジュールをシャドウし、インポートできないため、これはお勧めできません)。それは後で)。

インポート元のファイルを確認するには、次のようにします。

import test
print test
于 2013-04-22T10:19:42.887 に答える