Maison >développement back-end >Tutoriel Python >Comment comparer avec précision les chaînes de version Python ?

Comment comparer avec précision les chaînes de version Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 15:00:03259parcourir

How to Accurately Compare Python Version Strings?

Comment comparer élégamment les chaînes de versions de Python

Lorsque vous travaillez avec des packages Python, il est souvent nécessaire de comparer les numéros de version. Cependant, comparer les versions de chaînes peut conduire à des résultats incorrects, car l'ordre des chaînes peut ne pas correspondre à l'ordre réel des versions.

Pour résoudre ce problème, Python fournit la classe packaging.version.Version, qui prend en charge le PEP 440. style d’ordre des chaînes de version. Cette méthode permet une comparaison précise des chaînes de version, en prenant en compte les caractères spéciaux et les identifiants de pré-version.

L'utilisation de Version est simple :

from packaging.version import Version

version1 = Version("2.3.1")
version2 = Version("10.1.2")

print(version1 < version2)  # True

Contrairement à la comparaison de chaînes native, Version correctement reconnaît que "2.3.1" est inférieur à "10.1.2".

Une autre option, bien que obsolète, est distutils.version. Bien qu'il ne soit pas documenté et soit conforme au PEP 386 obsolète, il peut toujours être rencontré :

from distutils.version import LooseVersion

version1 = LooseVersion("2.3.1")
version2 = LooseVersion("10.1.2")

print(version1 < version2)  # True

Cependant, distutils.version a des limites et ne gère pas correctement les versions PEP 440.

En résumé, pour comparer les chaînes de version Python avec précision et de manière pythonique, utilisez packaging.version.Version.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn