Bonjour

J'ai une fonction C wrappé en python à l'aide des ctypes, qui a entre autre un entier comme argument, un unsigned int32 pour être précis. J'ai un soucis un peu récurrent : le type int en python s'adapte largement à tous les cas, mais quand j'arrive à l'appel de ce cette fonction, j'ai une exception : un argument de la fonction est hors limite.

Quelle est la manière la plus pythonique de tester cet argument juste avant l'appel pour éventuellement adopter un mode dégradé ?

Est-ce :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if value<0 and value> 4294967295:
     traitement ...
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
try:
   valueC = ctypes.c_uint(value)
except:
  ...
Ou une autre méthode que je ne connais pas encore ?

Cordialement
Emmanuel