はPythonで、次のコードを考えてみましょう:Pythonの変数はデフォルトでグローバルになっていますか?
a = 10
def fun():
print(a)
fun()
これはipythonノートブックで正常に動作し、出力が10
です。
のC++でこのコードを考えてみましょう:
#include <iostream>
void fun() {
std::cout << a << std::endl;
}
int main() {
int a = 10;
fun();
return 0;
}
コンパイルすると、エラーがある:
compare-fun.cpp: In function ‘void fun()’:
compare-fun.cpp:4:18: error: ‘a’ was not declared in this scope
std::cout << a << std::endl;
私はPythonのコードについて混乱しています、なぜそれがa
が定義されていない場合でも、a
を呼び出すことができますfun
?
そのC++コードは** Pythonコードと同等ではありません**。同等のPythonコードでは、同等のエラーが発生します。 –
グローバル変数を使用できるようにしましたが、それらを変更するにはグローバル変数をグローバルにする必要があります。 –
これをPythonでテストすることは難しくありません。globals()の 'a 'は' True'を返します。 –