3

モジュールをインポートして、いくつかのメソッドを使用しようとしていますが、何らかの理由で突然エラーが発生します。

AttributeError: 'module' object has no attribute 'getFoobar'

もちろん、インポートするモジュールにはメソッド getFoobar があります。問題なく他のファイルで使用しています。これは今までになかったことです。

既にすべての .pyc ファイルを削除しようとしました__init__.pyが、同じフォルダーにあることを確認しましたが、相互インポートは行われていません。

SO と Google を検索しましたが、問題を解決する解決策はありませんでした。何が起こっているのかについてのアイデアはありますか? 他に何を試すことができますか?

ありがとう!

4

1 に答える 1

0

無料のモジュールレベルの関数またはメソッドにアクセスしようとしていますか?それは大きな違いを生みます。あなたがこのようなものを持っているなら:

class foo:
    def bar1():
        pass
def bar2():
    pass

ファイル「foo.py」に保存されている場合は、次のように、それぞれを呼び出すためにさまざまな操作を行う必要があります。

import foo
f = foo.foo()
f.bar1()
foo.bar2()

ご覧のとおり、クラスfooの外部にあるため、fooモジュールからbar2に直接アクセスできますが、bar1を呼び出すにはクラスfooのインスタンスを宣言する必要があります。特にJavaから切り替えた場合、これは初心者のよくある間違いであるため、fooモジュールからbar1を呼び出そうとしているだけだと思います。

于 2012-04-28T17:59:01.090 に答える