def sum(point):
point += 2 # 局部變量
return point
point = 10 # 全局變量
n = sum(5)
print(n)
這樣子是不行的:
point = 4
def sum(name):
point = point + 2
return point
point = 10
n = sum(10)
print(n)
出現報錯:UnboundLocalError: local variable ‘point’ referenced before assignment。翻譯一下就是:局部變量point在賦值之前被引用。也就是說:python把point = point + 2中的point當成了局部變量使用,然而他並沒有被賦值,因此出現報錯,為什麼局部變量不使用全局變量的point呢?這是因為在同一行賦值語句裡,局部變量不能引用全局變量,會被python誤解為修改全局變量值。