2016-06-29 2 views
0

Pythonでの私の作業では、変数を削除してコード内に文字列をインラインで残していることが時々ありました。私はあなたがこれを行うことができ、これが発生したときにコンパイラまたはランタイムエラーからの通知が全くないことに気づいた。誰かがなぜこれがエラーにならないのか教えてもらえますか?割り当てられていない文字列がPythonでコンパイルエラーを引き起こさないのはなぜですか?

c = 1 
"this causes no error or notification to the developer" 
b = 2 

これはdocstringのように機能しますが、3重引用符はなく、1つのセットだけです。私はその件に関する文書を見つけることができませんでした。

答えて

1

多くの言語では、変数に割り当てられていない式を持つことは完全に有効です。

3.14 
"Boo!" 
False 
2 + 2 
callable(func) and func() 

対話的に実行されると、Pythonはそのような式の結果を出力しますが、スクリプトではこれらの値は単に破棄されます。

このような表現は、実際に必ずしもこのようなコードを書くことは無意味ではない(例えば、それは呼び出し可能かどうfuncを呼び出し、funcは全く何もすることができ、最後の1、など)の副作用を有することができます。実際には、後で保持する必要があるものを返さない関数への呼び出しは、まさにあなたが反対しているものであり、明らかに有用です。

1

Pyhthonを定義し、別名expression-statements

として知られている、ということができますので、私は引用:

式の文が呼び出すために(通常は)計算し 値を書き込む、またはする(主に対話的に)使用されています手続き( が意味のある結果を返さない関数; Pythonでは、手続きは値 なしを返します)。式文の他の使用は許可され、 が時々役立ちます。

関連する問題