Membandingkan Nombor Versi dalam Python
Dalam Python, selalunya perlu untuk membandingkan versi, terutamanya apabila bekerja dengan pengurusan pakej atau penjejakan kebergantungan perisian. Walau bagaimanapun, membandingkan secara langsung versi rentetan boleh membawa kepada hasil yang salah disebabkan oleh susunan leksikografik.
Menggunakan packaging.version.Version
Penyelesaian yang disyorkan ialah menggunakan packaging.version .Kelas versi daripada perpustakaan pembungkusan. Kelas ini menyediakan sokongan untuk pesanan gaya PEP 440, memastikan versi dibandingkan dengan betul mengikut peraturan yang ditakrifkan oleh Pihak Berkuasa Pembungkusan Python.
import packaging.version as version version("2.3.1") < version("10.1.2") # True version("1.3.a4") < version("10.1.2") # True
Alternatif
Sebelumnya kepada ketersediaan pembungkusan, modul distutils.version telah digunakan untuk perbandingan versi. Walau bagaimanapun, ia telah ditamatkan dan mematuhi PEP 386 yang kini digantikan. Adalah disyorkan untuk mengelak daripada menggunakan modul ini dan bergantung pada packaging.version.Version sebaliknya.
Modul DISTutils.version yang ditamatkan
from distutils.version import LooseVersion, StrictVersion LooseVersion("2.3.1") < LooseVersion("10.1.2") # True StrictVersion("2.3.1") < StrictVersion("10.1.2") # True StrictVersion("1.3.a4") # ValueError: invalid version number '1.3.a4'
Perhatikan bahawa StrictVersion tidak menyokong versi PEP 440, menganggapnya sebagai "tidak ketat."
Kesimpulan
Apabila membandingkan nombor versi dalam Python, lebih suka kelas packaging.version.Version untuk hasil yang tepat dan boleh dipercayai. Ia mengikut spesifikasi PEP 440 terkini dan memastikan pesanan versi yang konsisten. Elakkan daripada menggunakan modul distutils.version yang telah ditamatkan, yang mungkin menghasilkan perbandingan yang salah.
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Nombor Versi dengan Tepat dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!