Wie bestimmt man den Typ einer Python-Variablen?

Wie erkenne ich den Typ einer Variablen, ob sie 32 Bit ohne Vorzeichen, 16 Bit mit Vorzeichen usw. hat?

Wie kann ich das sehen?

Vielleicht suchen Sie die Funktion type().

Siehe die Beispiele unten, aber es gibt keinen "unsigned"-Typ in Python, genau wie in Java.

Positive Ganzzahl:

>>> v = 10
>>> type(v)

Große positive ganze Zahl:

>>> v = 100000000000000
>>> type(v)

Negative ganze Zahl:

>>> v = -10
>>> type(v)

Wörtliche Folge von Zeichen:

>>> v = 'hi'
>>> type(v)

Fließkomma-Ganzzahl:

>>> v = 3.14159
>>> type(v)
Kommentare (1)
print type(variable_name)

Ich empfehle auch den interaktiven Interpreter IPython, wenn es um Fragen wie diese geht. Er lässt Sie Variablenname? eingeben und gibt eine ganze Liste von Informationen über das Objekt zurück, einschließlich des Typs und des Doc-Strings für den Typ.

z.B..

In [9]: var = 123

In [10]: var?
Type:       int
Base Class: 
String Form:    123
Namespace:  Interactive
Docstring:
    int(x[, base]) -> integer

Konvertiert eine Zeichenkette oder eine Zahl in eine Ganzzahl, wenn möglich. Ein Fließkomma-Argument wird gegen Null abgeschnitten (dies gilt nicht für die Darstellung einer Zeichenkette Darstellung einer Fließkommazahl!) Bei der Konvertierung einer Zeichenkette ist die optionale Basis zu verwenden. Es ist ein Fehler, eine Basis anzugeben, wenn eine Nicht-Zeichenkette. Wenn das Argument außerhalb des Integer-Bereichs liegt, wird stattdessen ein Long-Objekt zurückgegeben.

Kommentare (4)

Die Frage ist etwas zweideutig - ich bin nicht sicher, was Sie mit "Ansicht" meinen. Wenn Sie versuchen, den Typ eines nativen Python-Objekts abzufragen, wird die Antwort von @atzz Sie in die richtige Richtung lenken.

Wenn Sie jedoch versuchen, Python-Objekte zu generieren, die die Semantik primitiver C-Typen haben (wie uint32_t, int16_t), verwenden Sie das Modul struct. Sie können die Anzahl der Bits in einem gegebenen primitiven C-Typ folgendermaßen bestimmen:

>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4

Dies spiegelt sich auch im Modul array wider, das Arrays dieser untergeordneten Typen erstellen kann:

>>> array.array('c').itemsize # char
1

Die maximal unterstützte Ganzzahl (Python 2's int) ist durch sys.maxint gegeben.

>>> import sys, math
>>> math.ceil(math.log(sys.maxint, 2)) + 1 # Signedness
32.0

Es gibt auch sys.getsizeof, das die tatsächliche Größe des Python-Objekts im Restspeicher zurückgibt:

>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12

Für Float-Daten und Präzisionsdaten verwenden Sie 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)
Kommentare (1)