条件値でのlen(SEQUENCE)の使用がPylintによって正しくないと見なされるのはなぜですか?
このコードスニペットを検討してください。 from os import walk files = [] for (dirpath, _, filenames) in walk(mydir): # more code that modifies files if len(files) == 0: # <-- C1801 return None ifステートメントのある行に関する次のメッセージでPylintに警告されました。 [pylint] C1801:len(SEQUENCE)条件値として使用しない ルールC1801は、一見したところ、あまり合理的に聞こえませんでした。リファレンスガイドの定義では、これが問題である理由が説明されていません。実際、それは間違いなくそれを不正使用と呼んでいます。 len-as-condition(C1801): 条件値として使用しないlen(SEQUENCE)Pylintが条件内でlen(sequence)の誤った使用を検出したときに使用されます。 私の検索の試みも、私にもっと深い説明を提供することに失敗しました。シーケンスの長さプロパティは遅延評価される可能性があり、__len__副作用を持つようにプログラムできることは理解していますが、それだけでPylintがそのような使用を誤って呼び出すのに十分な問題があるかどうかは疑問です。したがって、ルールを無視するようにプロジェクトを構成する前に、推論に何か欠けているかどうかを知りたいのです。 len(SEQ)条件値としての使用が問題になるのはいつですか?PylintがC1801で回避しようとしている主な状況は何ですか?