Python und Klassen
- newone_XXV.
- User
- Beiträge: 50
- Registriert: Dienstag 20. Juni 2006, 15:03
- Wohnort: Direkt vor meinem PC
- Kontaktdaten:
Wo ist denn da ein Wiederspruch? Ich meine für mich ist das so ziemlich das Gleiche, oder teusche ich mich da?
<°)))o><
Don't feed the Troll!
Don't feed the Troll!
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
Hm, ich nehme an mal, du meinst, dass bei der Variablendefinition nicht wie z.B. in Pascal ein fester Typ angegeben wird und somit eine Variable nichts vom "String" oder "Integer" erbt. Das ist aber imho falsch, da Variablen sehr wohl erben, nur halt automatisch, wie man an diesem Beispiel sehen kann:Python ist typfrei in dem Sinn, dass es nicht möglich ist, einen Typ zu definieren. Trotzdem können in Python Klassen definiert werden. Ist das nicht ein Widerspruch?
Code: Alles auswählen
>>> a = "abc"
>>> a.split("b")
['a', 'c']
>>> b = 123
>>> b.split(2)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: 'int' object has no attribute 'split'
b erbt diese Funktion nicht, da b ein integer ist
Oder hab ich dich falsch verstanden?
BeeWee
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Falsch.axxter hat geschrieben:Python ist typfrei in dem Sinn, dass es nicht möglich ist, einen Typ zu definieren.
Du verwechselt dynamische Typisierung mit wie du es nennst, Typfreiheit (womit du vermutlich schwache Typisierung meinst). Python ist aber durchaus Typisiert, nämlich stark dynamisch. Das heißt, dass jeder Name auf ein Objekt zeigt, welches immer einen Typ hat, aber durchaus auch auf ein anderes Objekt zeigen kann, welches einen anderen Typ hat.
Ein Beispiel:
Code: Alles auswählen
In [3]: var = list()
In [4]: type(var)
Out[4]: <type 'list'>
In [5]: var = ""
In [6]: type(var)
Out[6]: <type 'str'>
Edit (Leonidas): Erklärung geändert. Danke fürs erinnern, BlackJack. War etwas unglücklich formuliert.
Zuletzt geändert von Leonidas am Samstag 8. Juli 2006, 21:19, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Der übliche Hinweis das man hier nicht einfach von "Variablen" sprechen sollte, sondern von Objekten, welche an Namen gebunden werden. In Python haben die Objekte den Typ und die Namen nicht. Bei vielen anderen Sprachen ist der Typ (auch) mit dem Namen verbunden.