"""
legb查詢規則:
l locals 區域性變數,當前所在命名空間(如函式,模組等) 注意,包括函式的引數(形參)
e enclosing function 閉包空間(外部巢狀函式的命名空間)
g globals 全域性變數,某個python模組的命名空間
b builtins python內建模組的命名空間
"""key='hello'
#模組全域性
deftest
(): print(key)#全域性,輸出:hello
deftest2
(key):
print(key,end='***')#區域性(形參),輸出 key引數傳入的值
key=key+str(512)
print(key)
deftest3
():#print(key)
""" 這裡↑遵循legb規則解析識別符號key的時候,
在函式locals中發現了key=1024
key不再當作全域性變數解析,所以開啟注釋後這裡會報錯:
local variable 'key' referenced before assignment
"""key=1024
#注意和前面的test函式比較
print(key)
deftest4
():global key
#若要在模組內的某個函式裡面修改模組全域性變數,一定要有global關鍵字
key=1024
if __name__ == '__main__':
test()
test2('hi')
test3()
test4()
test()
執行結果:
hello
hi***hi512
1024
1024
process finished with exit code 0
這個問題使用pycharm程式設計時候,編輯器是可以用高亮給你提示出來的......so,有個好的ide真實省心省力啊o(∩_∩)o Scala《識別符號》
val scala.math.sqrt 2 val val 42 println val 1 to10 等價於 1.to 10 1 10 等價於 1 10 1 tostring 等價於 1.tostring val a 42 a等價於 a.unary a 1 等價於 a a 1 構造列表list 1...
python 識別符號
在 python 裡,識別符號由字母 數字 下劃線組成。在 python 中,所有識別符號可以包括英文 數字以及下劃線 但不能以數字開頭。python 中的識別符號是區分大小寫的。以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不...
Python 識別符號
在 python 裡,識別符號由字母 數字 下劃線組成。在 python 中,所有識別符號可以包括英文 數字以及下劃線 但不能以數字開頭。python 中的識別符號是區分大小寫的。以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不...