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" になります。

ディスカッション
コメント一覧
まだ、コメントがありません