Python function內的local與global variable #572
Answered
by
JSHT
gnsJhenJie
asked this question in
Q&A
|
請問以下這段code為什麼會在第4行出錯 UnboundLocalError: local variable 'a' referenced before assignment ,我的想法是在執行第4行時的a應該是指global variable的a,但看錯誤訊息後發現python似乎把第4行的a當成local variable了 a = "hello"
def foo():
print(a) # 這行出錯
a = "123"
print(a)
foo() |
Answered by
JSHT
Apr 27, 2022
Replies: 2 comments 3 replies
Answer selected by
gnsJhenJie
OKa = "hello"
def foo():
print(a) # global variable
b = "123"
print(b) # local variable
foo()OKa = "hello"
def foo():
print(a) # global variable
foo()OKa = "hello"
def foo():
global a
print(a) # global variable
a = "123" # global variable
print(a) # global variable
foo()Errora = "hello"
def foo()
print(a) # 原以為 a 是 global variable
a = "123" # a 被指定為 local variable,跟上一行程式牴觸
print(a)
foo()
|
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment




感覺有點像 Hoisting 的概念。剛剛找到 這篇文章,不知道能不能作為解釋。