Tất cả các tài liệu Python tôi đã đọc xuất hiện để chỉ ra rằng, tác dụng phụ sang một bên, rằng nếu bạn nhập mô-đun A và sau đó tham chiếu A.a, bạn đang tham chiếu biến tương tự như khi bạn viết "từ A nhập".Tại sao từ ... nhập xuất hiện để liên kết với giá trị tại thời gian nhập bằng Python?
Tuy nhiên, điều đó dường như không phải là trường hợp ở đây và tôi không chắc chắn điều gì đang xảy ra. Tôi đang sử dụng Python 2.6.1.
Nếu tôi tạo ra một mô-đun alpha.py:
bravo = None
def set_bravo():
global bravo
bravo = 1
Sau đó tạo một kịch bản mà nhập khẩu các mô-đun:
import sys, os
sys.path.append(os.path.abspath('.'))
import alpha
from alpha import bravo
alpha.set_bravo()
print "Value of bravo is: %s" % bravo
print "Value of alpha.bravo is: %s" % alpha.bravo
Sau đó, tôi nhận được kết quả này:
Value of bravo is: None
Value of alpha.bravo is: 1
Tại sao đó là gì?
Ah. Tôi nghĩ 'nhập' tên biến được nhập từ một mô-đun vào không gian tên cục bộ, nhưng có vẻ như nó liên kết cùng tên trong không gian tên cục bộ với giá trị * của biến được nhập. Tôi không chắc chắn rằng đó là què hay tôi quá lame để nhận ra rằng nó không phải là. –
Chính xác. Python không có "biến" cho mỗi se, chỉ "tên". –