Cum pot vedea tipul unei variabile, dacă este fără semn pe 32 de biți, cu semn pe 16 biți etc.?
Cum se poate vizualiza acest lucru?
Este posibil să căutați funcția type()
.
Vedeți exemplele de mai jos, dar nu există un tip "unsigned" în Python, la fel ca în Java.
Număr întreg pozitiv:
>>> v = 10
>>> type(v)
<type 'int'>
Întreg pozitiv mare:
>>> v = 100000000000000
>>> type(v)
<type 'long'>
Număr întreg negativ:
>>> v = -10
>>> type(v)
<type 'int'>
Secvență literală de caractere:
>>> v = 'hi'
>>> type(v)
<type 'str'>
Număr întreg în virgulă mobilă:
>>> v = 3.14159
>>> type(v)
<type 'float'>
print type(variable_name)
De asemenea, recomand cu căldură interpretorul interactiv IPython atunci când aveți de-a face cu astfel de întrebări. Acesta vă permite să tastați variable_name?
și vă va returna o listă întreagă de informații despre obiect, inclusiv tipul și șirul de documente pentru tipul respectiv.
De exemplu.
In [9]: var = 123
In [10]: var?
Type: int
Base Class: <type 'int'>
String Form: 123
Namespace: Interactive
Docstring:
int(x[, base]) -> integer
Conversia unui șir de caractere sau a unui număr într-un număr întreg, dacă este posibil. Un argument în virgulă mobilă va fi trunchiat spre zero (acest lucru nu include un șir de caractere reprezentare a unui număr în virgulă mobilă!) La conversia unui șir de caractere, utilizați baza opțională. Este o eroare dacă se furnizează o bază atunci când se convertește un non-string. În cazul în care argumentul este în afara intervalului de numere întregi, un obiect long va fi returnat în schimb un obiect de tip "object".
Întrebarea este oarecum ambiguă - nu sunt sigur la ce vă referiți prin "view". Dacă încercați să interogați tipul unui obiect nativ Python, răspunsul @atzz'lui vă va îndruma în direcția corectă.
Cu toate acestea, dacă încercați să generați obiecte Python care au semantica tipurilor primitive C, (cum ar fi uint32_t
, int16_t
), utilizați modulul struct
. Puteți determina numărul de biți dintr-o anumită primitivă de tip C în felul următor:
>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4
Acest lucru este reflectat și în modulul array
, care poate crea tablouri din aceste tipuri de nivel inferior:
>>> array.array('c').itemsize # char
1
Numărul întreg maxim acceptat (int
din Python 2's) este dat de sys.maxint.
>>> import sys, math
>>> math.ceil(math.log(sys.maxint, 2)) + 1 # Signedness
32.0
Există, de asemenea, sys.getsizeof, care returnează dimensiunea reală a obiectului Python în memoria reziduală:
>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12
Pentru datele float și datele de precizie, utilizați sys.float_info:
>>> 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)