Python und Klassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
axxter
User
Beiträge: 1
Registriert: Samstag 8. Juli 2006, 12:15

Python und Klassen

Beitragvon axxter » Samstag 8. Juli 2006, 12:16

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?
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Beitragvon newone_XXV. » Samstag 8. Juli 2006, 14:54

Wo ist denn da ein Wiederspruch? Ich meine für mich ist das so ziemlich das Gleiche, oder teusche ich mich da?
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Samstag 8. Juli 2006, 15:03

<°)))o><
Don't feed the Troll!
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Beitragvon beewee » Samstag 8. Juli 2006, 15:05

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?

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:

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'

Die Variable a erbt von "String" die Funktion split, da a ein string ist.
b erbt diese Funktion nicht, da b ein integer ist

Oder hab ich dich falsch verstanden?

BeeWee
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Python und Klassen

Beitragvon Leonidas » Samstag 8. Juli 2006, 16:35

axxter hat geschrieben:Python ist typfrei in dem Sinn, dass es nicht möglich ist, einen Typ zu definieren.

Falsch.
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'>


Weitere Infos gibts in der WIkipedia unter Typisierung.

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 Modvoice
BlackJack

Beitragvon BlackJack » Samstag 8. Juli 2006, 21:02

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder