私は現在、私はPythonがブロックベースのスコープをサポートしていないという事実を読んで理解パイソンPythonでのブロックスコープ - 関数内でjavascriptホイストと似ていますか?
def foo(a):
if a==12:
var = "Same"
else:
var = "different"
にコードのこの部分を理解しようとしています。したがって、関数内で作成されたすべてのもの(ループ内または条件文内)は、関数の他のメンバーに公開されています。また、スコープ規則hereも読んでいます。この時点で、これらのスコープ内の変数は、JavaScriptのように関数内に持ち込まれていると仮定すると同じでしょうか?
まあ、Pythonには変数の宣言がありませんので、javascriptの 'var'ホイストとの比較は難しいです。私はxに何かを割り当てた後に 'global x'宣言を置くことができることを知っています。それはまだ動作しますが、それはリンゴとオレンジのようなものです。 – Kevin
@ jamesfranco - これは決して安全ではありません。なぜあなたはあなたのPythonインタプリタを起動して見つけませんか? –
@KevinどのようにPythonの宣言(またはその欠如)は、 'var'キーワード以外のJavascriptとは異なりますか? –