Bởi tai nạn tôi nhận thấy rằng cả hai csv
và re
module của thư viện chuẩn python có .__version__
thuộc tính của họ:Tại sao có chuỗi __version__ trong một số mô-đun của thư viện chuẩn Python?
>>> import re, csv
>>> re.__version__
'2.2.1'
>>> csv.__version__
'1.0'
Nó làm tôi ngạc nhiên khi họ là một phần của thư viện chuẩn, vì vậy tôi mong chờ phiên bản của họ được xác định bởi sys.version
(và sys.version_info
).
Tôi đã nhận thấy các giá trị của thuộc tính giống nhau cho cả Python 2.7.13 và 3.6.1, mặc dù các mô-đun đã thay đổi.
Chúng chỉ là một loại "hóa thạch mã" hay chúng có ý nghĩa nào đó và các lập trình viên nên chú ý đến giá trị của chúng?
Tôi nghĩ rằng bạn kết hợp các phiên bản của Python với một phiên bản của thư viện. Ví dụ, nếu bạn làm việc với một hệ điều hành Linux-3.16, điều đó không có nghĩa là bạn phải chạy Firefox 3 trên nó để duyệt web. Số phiên bản là * không * toàn cầu. –
Không phải là câu trả lời, tôi đoán, nhưng: * "Trên cơ sở từng trường hợp, các mô-đun thư viện chuẩn cũng được phát hành dưới dạng độc lập cho các phiên bản Python khác CÓ THỂ bao gồm số phiên bản mô-đun khi được đưa vào thư viện chuẩn và NÊN bao gồm số phiên bản khi được đóng gói riêng. "* ([source] (https://www.python.org/dev/peps/pep-0396/#id25)) – vaultah
Hơn nữa thư viện chuẩn thường là tập hợp các gói với số phiên bản cụ thể. Nhưng việc phát triển các gói tiếp tục. Vì vậy, bạn có thể quyết định sử dụng phiên bản "xây dựng hàng đêm" của 're' có thể cung cấp một số tính năng thử nghiệm, nhưng chưa được thử nghiệm đầy đủ để đưa nó vào thư viện chuẩn. Thông thường một thư viện tiêu chuẩn nhằm mục đích chọn các gói chất lượng cao, ít nhiều * đáng tin cậy *. –