2012-03-28 4 views
2

Ich kam gerade quer durch den folgenden Code in einem bestehenden Projekt, das ich arbeite:Python - Was ist die Verwendung von wenn True:?

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

Inside the wenn Wahre viele Bedingungen sind und einige werden auch die Funktion bereits zurück. Warum sollte jemand auf diese Weise schreiben? Der Code enthielt auch einige andere Fehler, aber er wunderte sich nur über die if True: -Anweisung, da sie für mich keinen Sinn ergab. Wahrscheinlich auch ziemlich blöd um es zu fragen, aber wunderte sich hehe.

Antwort

8

Es könnte ein Rest von Debugging oder Refactoring sein. Es könnte sein, dass anstelle von True ursprünglich eine Bedingung oder Variable dort war, aber es wurde jetzt durch True ersetzt. Der Entwickler hat es vielleicht dort gelassen, ohne es zu überarbeiten oder es aufzuräumen.

Wenn Sie den Code frei bearbeiten können und sicher sind, dass der else nicht mehr benötigt wird, können Sie ihn entfernen. Es macht in der Tat keinen Sinn, Code in Ihrer Codebasis zu haben, der niemals ausgeführt wird.

0

Es könnte ein Flag zum Debuggen verwendet werden.

1

an keinen Sinn für mich, meine Vermutung ist, dass jemand zwei verschiedene Codepfade haben wollte, dass er zwischen a'la #if 1 .. #else mit alternativen könnte ->#if 0 ... für das Debuggen oder solche Zwecke.

andere Möglichkeit war, dass, wie @SimeonVisser vorgeschlagen wurde der ursprüngliche Entwickler Refactoring oder den Code Reinigung (und nicht über einen Emulator, der einen leicht erlaubt 1 von einem Codeblock Schritt der Einbuchtung zu entfernen)

0

Es wird einfach verwendet, um sicherzustellen, dass der else: Block niemals ausgeführt wird.
Ich habe if True: für einige Blöcke verwendet, um sicherzustellen, dass mein Code wirklich das tut, was ich will. Verwendung zum Debuggen oder Refactoring.
Alles in allem macht es keinen Sinn, dies in einer Anwendung zu verwenden, aber zum Testen oder Debuggen ist es irgendwie akzeptabel.

5

True nicht unbedingt True

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

Ehrlich meine, ich glaube nicht, dass jemand wie dieser Code würde.

+0

Nicht ganz verwandt, aber ich mag die Antwort gelernt etwas Neues, ich hoffe, dass das vorherige Entwickler Code nicht auf diese Weise codiert: O –

+0

plus 1 für mich zu lachen. – juggler

Verwandte Themen