_
toggle menu eXmatrikulationsamt.de
online: 311 gäste

> Objektorientiert arbeiten mit Python

Themen Layout: Standard · Linear · [Outline] Thema abonnieren | Thema versenden | Thema drucken
post 02 Jan 2009, 17:11
avatar
eXma Poltergeist
*********

Punkte: 6729
seit: 20.10.2004

Hallo Mitnerds,

will mich schon seit ein paar Tagen in Python einarbeiten, kann jedoch noch nicht wirklich erkennen, was daran so überaus toll sein soll. (Sorry für evtl. Fehlschlüsse oder Halbwahrheiten, bin noch ziemlich neu und nubig, was Python angeht)
Klar, die Omnipräsenz von Objekten ist ganz cool, z.B. für Callbacks und so, aber bspw. geht mir dieses "es ist nicht wichtig, zu welcher Klasse ein Objekt gehört, sondern nur, ob es die entsprechenden Methoden enthält" Credo auf den Sack. Ohne Typüberprüfung und co. laufe ich doch immer Gefahr in einen Runtime Error zu geraten. Klar gibts Exceptions und so, aber so richtig wohl fühle ich mich nicht bei dem Gedanken, sowas ständig zur Laufzeit prüfen zu müssen.
Des weiteren scheint es keine Unterscheidung zwischen Privat und Public zu geben, darüber hinaus können Objekteigenschaften überall definiert werden zu können oder täusche ich mich da?
Gleiches gilt für so m. M n. wunderbare Sachen, wie Interfaces und abstrakte Klassen. Klar kann Python Mehrfachvererbung und man kann sich sowas dann quasi per Hand zusammenbasteln. Trotzdem, durch die nicht vorhandene Typprüfung wird das ganze doch etwas ad absurdum geführt, denn ich kann ja nicht überprüfen, ob ein bestimmtes Objekt jetzt ein bestimmtes Interface (bspw. Iterator) implementiert, sondern eben nur, ob die beschissene Methode da ist und das eben erst zur Laufzeit.

Hm also entweder funktioniert die OOP hier ganz anders und ich muss erstmal auf den Geschmack kommen, oder die ganze Sache ist etwas abgefuckt. Kann mich da mal jemand aufklären?


--------------------
ProfilPM
AntwortenZitierenTOP
 
Antworten
post 04 Jan 2009, 04:09
avatar
1. Schein
*

Punkte: 22
seit: 28.02.2008

Da scheiden sich sicher ein wenig die Geister. Wenn sich die Welt der Informatik da so einig wäre wie du es in der Uni scheinbar mitgeteilt bekommst, gäbe es nicht auf beiden Seiten fähige Leute, die "ihren" Weg für den besseren halten. Und ganz am Rande gibt es gerade in den USA, aber z.B. auch Schweden immer mehr Universitäten, die ihren Studenten Python beibringen.
Meine Erfahrungen mit solchen "dynamischen" Sprachen haben bisher gezeigt, dass das Fehlen all dieser Begrenzungen (Typing, Access Control, usw) das arbeiten im kleinen viel schneller/angenehmer/einfacher macht und im großen (zum Teil wie von Anatol angemerkt durch die Benutzung von Unit Tests) kaum so ein Problem ist, wie man instinktiv gerne annimmt.
Django ist ein gutes Beispiel für ein modernes und mittelmäßig modernes Framework in Python. Und es funktioniert super, ganz ohne all diesen Zwangs-Kram. ;-)
Ein anderes berühmtes Beispiel aus dieser Ecke ist sicher Ruby on Rails, wobei ich persönlich darin auch genau einige der Nachteile der größeren Freiheiten solche Sprachen realisiert sehe. :-)
Unterm Strich kann man wohl nur sagen: Sammel einfach deine eigenen Erfahrungen und schau, wie du damit zurecht kommst. Selbst wenn die Antwort für dich am Schluss heisst "Oha, so ein Mist, gib mir mein Java/C#/Whatever zurück!" heisst, hast du zumindest deinen Horizont erweitert. Und ich finde gerade bei Programmiersprachen und somit unterschiedlichen Ansätzen an das Problemfeld programmieren kann das immer nur gut sein. :-)


--------------------
Fucking for peace is like bombing for virginity.
ProfilPM
AntwortenZitierenTOP
Beiträge
Stormi   Objektorientiert arbeiten mit Python   02 Jan 2009, 17:11
anatoL   Vielleicht hilft Dir eine "test-driven" ...   02 Jan 2009, 18:15
stth   nein. Python wird dich versauen ;)   02 Jan 2009, 21:14
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: