Comment voir le type d'une variable, qu'il s'agisse d'une variable non signée 32 bits, signée 16 bits, etc.
Comment puis-je le visualiser ?
Vous cherchez peut-être la fonction type()
.
Voir les exemples ci-dessous, mais il n'y a pas de type "unsigned" ; en Python comme en Java.
Entier positif :
>>> v = 10
>>> type(v)
<type 'int'>
Large nombre entier positif :
>>> v = 100000000000000
>>> type(v)
<type 'long'>
Nombre entier négatif :
>>> v = -10
>>> type(v)
<type 'int'>
Séquence littérale de caractères :
>>> v = 'hi'
>>> type(v)
<type 'str'>
Entier à virgule flottante :
>>> v = 3.14159
>>> type(v)
<type 'float'>
print type(variable_name)
Je recommande aussi vivement l'interpréteur interactif [IPython][1] pour des questions de ce genre. Il vous permet de taper variable_name?
et retournera toute une liste d'informations sur l'objet, y compris le type et la chaîne de caractères du type.
Par exemple
In [9]: var = 123
In [10]: var?
Type: int
Base Class: <type 'int'>
String Form: 123
Namespace: Interactive
Docstring:
int(x[, base]) -> integer
Convertir une chaîne ou un nombre en un entier, si possible. Un argument à virgule flottante sera tronqué vers zéro (ceci n'inclut pas une chaîne de caractères représentant un nombre à virgule flottante ! d'un nombre à virgule flottante). Lors de la conversion d'une chaîne de caractères, utilisez la base optionnelle. C'est une erreur de fournir une base lors de la conversion d'une non chaîne de caractères. Si l'argument est en dehors de la plage des entiers, un objet long sera retourné à la place.
La question est quelque peu ambiguë : je ne suis pas sûr de ce que vous entendez par " view ". Si vous essayez de interroger le type d'un objet Python natif, la réponse de [@atzz][1]'vous guidera dans la bonne direction.
Cependant, si vous essayez de générer des objets Python qui ont la sémantique des types C primitifs (tels que uint32_t
, int16_t
), utilisez le module [struct
][2]. Vous pouvez déterminer le nombre de bits dans une primitive de type C donnée de la manière suivante :
>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4
Ceci est également reflété dans le module array
, qui peut créer des tableaux de ces types de niveau inférieur :
>>> array.array('c').itemsize # char
1
L'entier maximum supporté (Python 2's int
) est donné par [sys.maxint][3].
>>> import sys, math
>>> math.ceil(math.log(sys.maxint, 2)) + 1 # Signedness
32.0
Il existe également [sys.getsizeof][4], qui renvoie la taille réelle de l'objet Python dans la mémoire résiduelle :
>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12
Pour les données flottantes et les données de précision, utilisez [sys.float_info][5] :
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.2204460492503131e-16, radix=2, rounds=1)
[1] : https://stackoverflow.com/questions/402504/how-to-determine-the-variable-type-in-python#402516 [2] : http://docs.python.org/library/struct.html#struct.calcsize [3] : http://docs.python.org/library/sys.html#sys.maxsize [4] : http://docs.python.org/library/sys.html#sys.getsizeof [5] : http://docs.python.org/library/sys.html#sys.float_info