do_global()関数が呼び出され、その中でglobalキーワードを使ってグローバルスコープのloc変数が”5″に変更されます。 この場合のグローバルスコープってどこ?

Pythonでは、グローバルスコープはモジュールのトップレベルです。つまり、ファイル内で定義された関数や変数は、そのファイルのモジュールスコープにあります。モジュールがスクリプトとして実行される場合、そのモジュールのグローバルスコープはそのスクリプト全体です。

したがって、次のコードの場合、グローバルスコープはそのスクリプト全体を指します。

python
loc = "1" def scope(): loc = "2" def do_global(): global loc loc = "5" do_global() print(loc) # 出力: 5

ここで、do_global() 関数内で global キーワードを使用しているので、loc 変数がグローバルスコープに変更されます。そのため、print(loc) での出力は “5" になります。

未分類

Posted by ぼっち