Manchmal möchte man abfragen, unter welcher Version von Python ein Script läuft, wenn man z.B. Features von 2.2 verwendet, die unter früheren Versionen einen Workaround benötigen. Hier mal ein Beispiel:
1 from sys import version_info
2 if version_info < (2,2): # check for version < 2.2
3 from UserList import UserList
4 class MyList(UserList):
5 def __init__(self):
6 self.data = []
7 ...
8 else:
9 class MyList(list):
10 def __init__(self):
11 ...
sys.version_info ist bei Verson 2.1.3 z.B. folgendes Tuple (2, 1, 3, 'final', 0) Das Ganze beruht auf der Möglichkeit Tuples (und auch Listen) miteinander zu vergleichen, die auch eine unterschiedliche anzahl von Elementen haben.
1 >>> a = [1,2,3]
2 >>> [0,1,2] < a < [2,3,4]
3 True
4 >>> a < [0,1]
5 False
6 >>> a < [2,3]
7 True
Entnommen aus Pythonversion abfragen siehe auch Klasse für Versionsinformationen
Grundsätzlich ist es jedoch sinnvoller, nicht mit Versionen zu hantieren, sondern gleich zu testen, ob das gewünschte Feature vorhanden ist. Zum Beispiel können Skripte, die True und False brauchen, aber auch in Versionen laufen müssen, in denen dies keine Builtins waren, folgendes tun:
1 try:
2 True
3 except:
4 True = (1 == 1)
5 False = not True
So macht man sich nicht von Versionen abhängig, die man schnell verwechseln kann.