Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のpythonコードがあります
a = 2 if a == 1: b = 'blah' print b else: print b
実行しようとすると、「b」は「else」ではなく「if」句でのみ定義されているため、実行時エラーが発生します。
Pylint と Pyflakes はどちらもこの問題を検出できませんでした。
コードを実行せずに検出できる他の方法はありますか?
一般に、あなたの例よりも複雑なロジックが動作している可能性があるため、コードを実行しないとこれを検出できないと思います。ifこの-else句を複数回反復するループについてはどうbでしょうか? チェッカーは、プログラム実行のすべての可能な状態を知るために、インタープリターとまったく同じくらい複雑である必要があります (そして、おそらく副作用を含む同様の操作を実行します)。静的コード チェックの概念を参照してください。
if
else
b