モジュールmod1のクラスにメソッドを作成し、次のように呼び出します。
class blahblah:
def foobar(self, bvar, **dvar)
////
return dvar
そしてそれを次のように呼びます:
obj1 = mod1.blahblah()
dvar1 = obj1.foobar(True, **somedictionary)
Attribute error: blahblah has no attribute named foobar
をスローします
手伝っていただけませんか?前もって感謝します
説明するエラーの種類は、インデントの不一致が原因である可能性があります。メソッドがクラスの一番下にある場合は、クラス内で少し上に移動すると、問題が明らかになります。
pythonインタープリターが一致しないインデントに遭遇した場合(スペースでインデントされたファイルの下部にあるタブの使用を開始したなど))、インタープリターは常にエラーをスローするとは限らず、単に無視できますファイルの残りの部分です。元の作成者がさまざまな空白文字(たまたまGeanyタブと一致する)を使用した古いコードを更新しているときに、この問題に遭遇しました。認める。 :)
非常に古い質問ですが、@ Jacquotのコメントを引用します。問題が解決したためです(ipythonで%autoreloadを使用していました)。
For what it's worth, it can also happen when using the %autoreload magic command in jupyter notebook, when you modify some methods in your module code (ipython.org/ipython-doc/3/config/extensions/…)
特に、クラスをインポートしていたセルを再実行する問題を解決しました。
同じ問題がありましたが、クラスファイルを移動したときに発生しましたが、.pyoファイルを古いフォルダーに残し、pythonがその.pyoファイルを読み取る代わりに移動した.pyファイルを読み取る。
両方のファイルで同じ名前のクラスに名前を付けたことに気づくまで、同じ問題に直面しました-かなりばかげています!