HMPCBMจͷఆٛ w ެࣜυΩϡϝϯτΑΓ w HMPCBMจɺݱࡏͷίʔυϒϩοΫશମͰҡ࣋͞ΕΔએݴจͰ͢ɻ w HMPCBMจɺྻڍͨࣝ͠ผࢠΛάϩʔόϧมͱͯ͠ղऍ͢ΔΑ͏ࢦ ఆ͢Δ͜ͱΛҙຯ͠·͢ɻ IUUQTEPDTQZUIPOPSHKBSFGFSFODFTJNQMF@TUNUTIUNM IJHIMJHIUHMPCBMUIFHMPCBMTUBUFNFOU
ʢඇਪʣϞδϡʔϧείʔϓͰະఆٛ w ϞδϡʔϧείʔϓͰະఆٛͰಈ͘ w Մಡੑ͕ѱ͍ ˠάϩʔόϧมYͷॳظʁ ɹؔͷ࣮ߦॱংͷ֬ೝ͕ඞཁʹͳΔ # -*- coding:utf-8 -*- # x = 0 def bar(): global x x = 10 def foo(): print(x) bar() foo() # => 10
ʢඇਪʣࢀর͚ͩͳͷʹHMPCBMจ w Մಡੑ͕ѱ͘ͳΔ w ೖ͢ΔͭΓͩͬͨʁόάʁ # -*- coding:utf-8 -*- x = 0 def bar(): global x x = 10 # xʹೖ͍ͯ͠Δ def foo(): global x print(x) # xೖ͠ͳ͍ͷʁ bar() foo() # => 10
ଞͷϞδϡʔϧείʔϓͷมࢀর w ͞Βʹࣗͷͱ͜ΖͰάϩʔόϧมΛ࡞ ΔͱɺNZNPEWBM͕ݟ͑ͳ͘ͳΔ w ͭ·Γ͜͏͍͏ॻ͖ํΛ͖͢Ͱͳ͍ # -*- coding:utf-8 -*- from mymod import * val = 999 def print_val(): print(val) def set_val(num): global val val = num print_val() # => 999 set_val(456) print_val() # => 456 SVOQZ # -*- coding:utf-8 -*- val = 0 NZNPEQZ
༨ஊ w ಉ໊ͷϩʔΧϧมͱάϩʔόϧมɺಉ͡είʔϓͰ͑ͳ͍ $ python3 sample.py File "sample.py", line 8 global x ^ SyntaxError: name 'x' is used prior to global declaration # -*- coding:utf-8 -*- x = 0 def foo(): x = 10 print(x) global x x = 20 print(x) foo() SFTVMU