2012-03-28 5 views
2

私はちょうど私が働いている既存のプロジェクトに次のコードをaccrossに来た:インサイドPython - Trueの使用方法は?:

if True: 
    x = 5 
    y = 6 
    return x+y 
else: 
    return 'Something 

を真の条件の多くがあり、いくつかはまた、既に機能が返されます場合。 なぜ誰かがそのように書くだろうか?コードには他のバグも含まれていましたが、if True:文が私には意味をなさないので不思議に思っていました。おそらくそれを聞いてもかなり愚かな、しかしheheを疑問に思っていた。

答えて

8

デバッグまたはリファクタリングの残りの部分である可能性があります。 Trueの代わりに、そこに状態または変数がありましたが、現在はTrueに置き換えられている可能性があります。開発者は、おそらくリファクタリングやそれを一掃することなくそこに残しました。

コードを自由に編集して、もうそのコードが不要になったことを確認したら、コードを削除できます。実際には決して実行されないコードベースのコードを持つのは意味がありません。デバッグまたはそのような目的のために>#if 0 ... -

0

デバッグに使用されるフラグです。

1

は、私にはどんな意味がありません、私の推測は、誰かが彼が#if 1 .. #elseを使用してa'la間で交替可能性が二つの異なるコードパスを持っていると思ったということです。他の可能性は@SimeonVisserが示唆されているように、元の開発者がリファクタリングまたはクリーンアップコードを(一つが容易コードのブロックからくぼみの1つのステップを除去することを可能にするエミュレータを持っていなかった)した、ということであった

0

これは単にブロックelse:が実行されないようにするために使用されます。
いくつかのブロックにはif True:を使用しています。これは、自分のコードが本当に必要なことを確実にするためです。デバッグまたはリファクタリングのための使用法。
アプリケーションでこれを使用するのは実際的ではありませんが、テストやデバッグでは何とか受け入れられます。

5

Trueは必ずしも正直True

True = False 
if not True : 
    print "True is false" # This prints ok 

を意味するものではありません、私は誰もがこのようなコードとは思いません。

+0

あまり関係はありませんが、私は答えが新しく学ばれたのが好きです。以前の開発者がそのようなコードをしないことを願っています:O –

+0

と私を笑わせるための1。 – juggler