Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membandingkan Nombor Versi dengan Tepat dalam Python?

Bagaimana untuk Membandingkan Nombor Versi dengan Tepat dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-12 10:51:01938semak imbas

How to Accurately Compare Version Numbers in Python?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn