2
我不明白這個例子中的錯誤。打印6
,由Python的LEGB規則?當解釋器在第2行掃描f(a)
函數時,是否記住b = 33
並放入內存堆或只記得b
是局部變量的信息?Python變量作用域和UnboundLocalError
b = 6
def f(a):
print(a)
print(b)
b = 33
f(20)
# UnboundLocalError: local variable 'b' referenced before assignment
dis模塊顯示發生了什麼。它是通過讀取函數的全部函數來工作的,然後在屏幕上打印字節碼,還是在每行掃描後打印? –
所有'dis'需要創建你所看到的位於'f .__ code__'中,它不會讀取任何內容,它使用已存在的內容@MarkoSavic –