ich hoffe eine einfache Frage

gibt es eine Funtion die Überprüft ob ein Wert in einer Variablen ein int ist ?
Danke
Thonix
Code: Alles auswählen
>>> type(42) is int
True
>>> isinstance(42, int)
True
>>> (42).__class__ is int
True
Versteh ich leider nicht - kansst du das noch mal erläutern - bin ja wissbegierigWenn dein Code z.B. zwei Integers addieren will, und du explizit auf Integer prüfst, kann ich nicht meinen Typ "Element von F(5003)" übergeben, auch wenn meiner sich addieren lässt.
Optimalerweise nutzt man in Python wie gesagt eben keine Typprüfungen.thonix hat geschrieben:ich muss einen wert an eine Funktion weitergeben die unzureichende Typprüfungen macht und auch nur eine dürftige exception schmeißt.
Okay, gehen wir davon aus dass jemand sich diese Klasse geschrieben hat, d.h einen Integer-Datentyp der sich wie ein Integer verhält aber noch andere Sachen kann:thonix hat geschrieben:Versteh ich leider nicht - kansst du das noch mal erläutern - bin ja wissbegierigWenn dein Code z.B. zwei Integers addieren will, und du explizit auf Integer prüfst, kann ich nicht meinen Typ "Element von F(5003)" übergeben, auch wenn meiner sich addieren lässt.
Code: Alles auswählen
In [2]: class IntLike(int):
...: def wichtige_extra_funktion(self):
...: print 'Jetzt mache ich was ganz wichtiges'
Code: Alles auswählen
In [3]: il = IntLike(250188)
In [4]: il
Out[4]: 250188
In [5]: il + 1
Out[5]: 250189
Code: Alles auswählen
In [6]: il.wichtige_extra_funktion()
Jetzt mache ich was ganz wichtiges
Code: Alles auswählen
In [7]: def addiere_eins(zahl):
...: if type(zahl) is int:
...: return zahl + 1
...: else:
...: raise TypeError('Kein int')
Code: Alles auswählen
In [8]: addiere_eins(250188)
Out[8]: 250189
Code: Alles auswählen
In [9]: addiere_eins(il)
---------------------------------------------------------------------------
<type 'exceptions.TypeError'> Traceback (most recent call last)
/home/marek/<ipython console> in <module>()
/home/marek/<ipython console> in addiere_eins(zahl)
<type 'exceptions.TypeError'>: Kein int
Code: Alles auswählen
In [10]: def addiere_eins(zahl):
....: return zahl + 1
Code: Alles auswählen
In [11]: addiere_eins(250188)
Out[11]: 250189
In [12]: addiere_eins(il)
Out[12]: 250189
Code: Alles auswählen
In [33]: type(42L) is int
Out[33]: False
Hi Thonix!thonix hat geschrieben:gibt es eine Funtion die Überprüft ob ein Wert in einer Variablen ein int ist?
Code: Alles auswählen
def verdopple_ganzzahl(zahl):
zahl = long(zahl)
return zahl * 2
Code: Alles auswählen
def verdopple_ganzzahl(zahl):
return zahl * 2
print verdopple_ganzzahl("123.33") # --> '123.33123.33'