Mô-đun giữ một từ điển để theo dõi ngữ cảnh của nó, chẳng hạn như các tên được xác định tại một số thời điểm thực hiện. Từ điển này có thể được truy cập thông qua vars(module)
(hoặc module.__dict__
) nếu module
được nhập khẩu, hoặc bằng một cuộc gọi đến locals
tích hợp chức năng trong module chính nó:Khi nào bộ từ điển cục bộ được đặt?
Cập nhật và gửi lại một cuốn từ điển đại diện cho bảng ký hiệu cục bộ hiện hành.
Nhưng tôi thấy mình bối rối, khi tôi thử truy cập từ điển người dân địa phương từ một hàm. Kết quả của một kịch bản chỉ chứa sau đây là một từ điển rỗng:
def list_locals():
print(locals())
list_locals()
Nhưng mặt khác, nếu một kịch bản có chứa độc quyền sau đây, đầu ra là từ điển mong đợi, chứa __name__
, __doc__
và các mô-đun khác biến -level:
print(locals())
Vì vậy, khi nào nội dung của từ điển địa phương được đặt? Ngoài ra, "cập nhật" có nghĩa là gì trong định nghĩa của hàm locals
?
Ở cấp mô-đun, hãy thử 'in (địa phương() là globals())' –
@Chris_Rands Yep, đó là một phần của sự nhầm lẫn của tôi. –