Tôi hiện có mã như thế này:Một thay thế cho toàn cầu trong Python
cache = 1
def foo():
global cache
# many
# lines
# of code
cache = 2
Tuy nhiên, điều này có thể dẫn đến khó tìm-lỗi trong tương lai, bởi vì người đọc không thể nhận thấy rằng global cache
xuất hiện ở đâu đó trên cache = 2
. Ngoài ra, người đóng góp có thể nhầm thêm def bar(): cache = 2
và quên thêm global cache
.
Làm cách nào để tránh sự cố này?
Chính xác thì lỗ hổng là gì? Bạn đang cố gắng làm gì, và cái gì không hiệu quả? – BrenBarn
Nếu ai đó viết phương pháp thứ hai thì sao? Nó vẫn sẽ là một biến cục bộ. Không có vấn đề với mã của bạn. – ATOzTOA
Nếu không có khai báo 'global', thì biến là local - nếu 'người đọc' có bất kỳ nền nào trong python, thì họ sẽ biết nó là local. Nếu bạn thực sự muốn, chỉ cần thêm một bình luận nói rằng đó là địa phương hoặc một cái gì đó. – Volatility