TL; DR:我想要一個看起來在包含範圍內的locals()。用於包含範圍的Python本地語言()
大家好。
我正在給一些化學家朋友教授關於Python編程的課程,我想確保我真的瞭解範圍。
考慮:
def a():
x = 1
def b():
print(locals())
print(globals())
b()
當地人打印一個空的環境,全局打印常用的全局。如何訪問存儲x的環境?顯然,口譯員知道這件事,因爲我可以參考它。
相關:何時確定範圍?
def a():
x = 1
def b():
a = x+2
x = 3
b()
如果您註釋掉X = 3,代碼工作:在= X + 2僅當x = 3包含以下nameErrors。這是否意味着python在解釋它之前對代碼進行了詞彙範圍傳遞?
你需要一個清單嗎?因爲你可以在打印全局變量後打印x。編輯:忘記說,如果你訪問x與打印x然後也是當地人()填充x:1。 – 2013-02-25 22:25:48
可能的重複[在Python中調用命名空間獲取本地](http://stackoverflow.com/questions/6618795/get-locals-from-calling-namespace-in-python) – piokuc 2013-02-25 22:33:27