私はPythonでプロジェクトに取り組んでおり、pylintで一般的に標準に準拠させようとしています。"未使用のインポート警告"とpylint
#loggingsetup.py
import logging
logging.root.setLevel(logging.DEBUG)
consoleOut = logging.StreamHandler()
consoleOut.setLevel(logging.INFO)
consoleOut.setFormatter(logging.Formatter("\t"+logging.BASIC_FORMAT))
logging.root.addHandler(consoleOut)
#etc
:だから、私はソースファイルを持って、私は私のようなものを持っているloggingsetupにおけるのでロギングは、どのように見えるかを制御したい、
#a.py
import loggingsetup
def foo():
log.info("This is a log message")
を(我々はそれをa.py呼ぶことにします)しかし、
今、これは問題なく動作しているようです。私は予備的な質問として、これが正しいかどうか、あるいは望ましいコードを構成する別の方法があるかどうかを尋ねるべきだと思います。
しかし私の主な質問は、私が実際にはloggingsetupから任意のメソッドや関数を呼び出すわけではないので、私はa.pyにpylintを実行すると "unused import - import loggingsetup"のような警告が出るということです。
私はloggingsetupの本体を関数として再定義して呼び出すことができますが、それは愚かでエラーが発生する可能性があります(別の場所からloggingsetupをインポートすると2回呼び出す心配があります。私がPythonがどのようにインポートを処理するかを理解していれば、それは私の現在の設定で問題にはなりません)。
私は明らかに警告を無視するようにpylintに伝えることができましたが、実際にはこれが実際には違った扱いをするべきではないことを最初に尋ねると思いました。
は私には間違って感じています。それはあなたのコードの意図を分かりにくくします。明示的は暗黙的より優れています。 –
何かを忘れてしまったり、不要なことをしているかもしれないという警告です。そうでない場合は無視してください。 – martineau
私は上記のmartineauの感想には一種違う。はい、ときどきこれがどうなるのか、あなたは警告を無視しなければならないことがありますが、通常、警告は「フレンドリーな思い出」として扱われるべきではなく、無視されるべきではありません。より良いアプローチを得る。 – Retsam