web-dev-qa-db-ja.com

Spyder IDE未定義の名前を検出できないという不満

SpyderでWindows 10を使用するIDE running Python 3.5。__init__.pyファイルunable to detect undefined names

enter image description here

ただし、__init__.pyファイルは、他のすべてのファイルと同じフォルダーにあります。

enter image description here

それでなぜそれが不平を言っているのですか?前面の先頭のドットを削除しようとしましたが、まだ不満があります。ポインタを教えてください。

5
Nick X Tsui

あなたのIDEはPythonではなく文句を言います。あなたがそうするときfrom simple import *、インポートするすべてsimpleによって公開されます。これはグローバル名前空間を汚染し、既存のオブジェクトを暗黙的に上書きする可能性があるため、通常は推奨されません。

この動作は常に悪いわけではないため、エラーではなく警告が表示されます。 __init__.pyサブモジュールからオブジェクトを公開するファイルは、非常に一般的なパターンです。潜在的なリスクを理解している限り、警告を止めてください。

from .input import *  # NOQA

モジュールが多くのオブジェクトを公開しない場合は、名前でそれらをインポートします。

from .input import A, B, C

これには、Pythonコード分析ツールがコードをよりよく理解し、潜在的な問題について警告することを許可するという利点があります。

9
Blender

アスタリスクも同じ問題がありました。 Blenderで示されるように、それらを呼び出すモジュールを見つけました

そしてそれは解決されました

One

モジュールの名前でアスタリスクを変更する

Two

競合している名前を見つける

Three

それらを追加すると、エラーは沈黙します

Four

あなたのコメントをありがとう、彼らは私が抱えていた問題を助けてくれました

1
Joe Llerena