我以爲Python是一種解釋型語言,但根據下面的代碼片段,它顯然不是正在做我所期望的?我做了一些搜索,事實證明,如果在函數中有一個賦值,python會'隱式地聲明'一個名字。所以它在解釋代碼時做了一些靜態分析,但我的問題是多少?例如如下面的代碼所示,不會因爲x = 1不可達而優化?我們是否有更多關於我們如何解釋代碼的細節?感謝Python代碼是如何解釋的以及有多少靜態分析?
x = 10
def f():
if False: x = 1
print x
UnboundLocalError: local variable 'x' referenced before assignment
啊,這是非常有用的工具:) – John