TL; DR: Tôi muốn một người dân địa phương() trông giống như một phạm vi có chứa.Người dân địa phương Python() để chứa phạm vi
Xin chào, tất cả.
Tôi đang dạy một khóa học về lập trình Python cho một số bạn bè hóa học và tôi muốn chắc chắn rằng tôi thực sự hiểu phạm vi.
xem xét:
def a():
x = 1
def b():
print(locals())
print(globals())
b()
Người dân địa phương in một môi trường trống rỗng, và globals in các globals bình thường. Làm cách nào để truy cập vào môi trường mà x được lưu trữ? Rõ ràng là thông dịch viên biết về nó vì tôi có thể tham khảo nó.
Liên quan: Khi nào phạm vi xảy ra? Tên sauĐược đặt trên a = x + 2 chỉ khi x = 3 được bao gồm:
def a():
x = 1
def b():
a = x+2
x = 3
b()
Nếu bạn nhận xét x = 3, mã hoạt động. Điều này có nghĩa là python thực hiện một phạm vi từ vựng vượt qua mã trước khi nó diễn giải nó?
bạn có cần danh sách không? bởi vì bạn chỉ có thể in x sau khi in hình cầu. EDIT: quên nói nếu bạn truy cập x với in x sau đó cũng là người dân địa phương() chứa đầy x: 1. –
có thể trùng lặp của [Nhận người dân địa phương từ không gian tên gọi bằng Python] (http://stackoverflow.com/questions/6618795/get-locals-from-calling-namespace-in-python) – piokuc