Ben piton standart kütüphanenin hem csv
ve re
modülleri kendi .__version__
niteliği olduğunu fark ettik: onlar standart kütüphanenin parçası olarakNiçin Python standart kütüphanesinin bazı modüllerinde __version__ dizeleri var? Kazara
>>> import re, csv
>>> re.__version__
'2.2.1'
>>> csv.__version__
'1.0'
Bu beni şaşırtıyor, bu yüzden onların sürümü ile tanımlanabilir beklenir sys.version
(ve sys.version_info
).
Modüllerin değişmesine rağmen, özniteliklerin değerleri Python 2.7.13 ve 3.6.1 için aynıdır.
Bunlar sadece bir çeşit "kod fosilleri" midir yoksa bir şekilde anlamlı mıdır ve programcılar değerlerine dikkat etmelidirler mi?
Ben bir kütüphanede bir sürümü ile Python sürümünü karıştırmak düşünüyorum. Örneğin bir Linux-3.16 işletim sistemi ile çalışıyorsanız, web'de gezinmek için Firefox 3'ü çalıştırmanız gerektiği anlamına gelmez. Sürüm numaraları * değil * global. –
Bir cevap değil, sanırım, ama: * "Her durumda, diğer Python sürümleri için bağımsız formda yayımlanan standart kitaplık modülleri, standart kitaplığa dahil edildiğinde bir modül sürüm numarası içerebilir ve OLMALIDIR Ayrı olarak paketlendiğinde bir sürüm numarası içerir. "* ([kaynak] (https://www.python.org/dev/peps/pep-0396/#id25)) – vaultah
Ayrıca, standart kitaplık genellikle bir belirli sürüm numarası. Ancak paketler üzerinde gelişme devam ediyor. Bu nedenle, belki de bazı deneysel özellikler sağlayan, ancak standart kütüphaneye dahil edilmek üzere henüz tam olarak test edilmemiş olan "gece inşa" versiyonunu kullanmaya karar verebilirsiniz. Genellikle standart bir kütüphane, az ya da çok güvenilir * yüksek kaliteli paketleri seçmeyi amaçlamaktadır. –