Ich bin kompletter Python-Neuling, aber von der Einfachheit und den vorhandenen Bibliotheken, Plattformunabhaengigkeit, Community sehr begeistert.
Mit einem C++-Background stolpere ich aber trotdem ueber so manches:
ich definiere eine Klasse mit:
class name:
statement....
So wie ich es verstanden habe, kann ich nun von ausserhalb der Klasse soviele Variablen wie moeglich hinzufuegen. Gibt es keine private oder protected class members? Wie kann ich verhindern, dass ein client einfach Dinge zu meiner Klasse hinzufuegt? Oder liege ich komplett falsch?
In C++ kann ich ja sehr elegant nur die Implementierung oder das Interface vererben, alles andere ist abgekapselt. Vertraut man in Python nur auf den Goodwill des client?
Gruss,
NICOLAUS
Newbie Frage zu Klassen
Private etc. gibt es nicht.
GvR hat dazu mal etwa gesagt: Wir sind ja keine Kinder
generell sind Variablen mit Unterstrichen am Anfang meist etwas internes und wenn man dran rum pfucht sollte man wissen was man tut.
Es gibt aber mit RestrictedPython eine Möglichkeit den Zugriff zu beschränken -- also ähnliche Dinge wie in C++ zu machen z.B. gut bei Klassen die Passwörter speichern. Meistens finde ich das ganze aber eher hinderlich -> kein RestrictedPython-Experte.
GvR hat dazu mal etwa gesagt: Wir sind ja keine Kinder
generell sind Variablen mit Unterstrichen am Anfang meist etwas internes und wenn man dran rum pfucht sollte man wissen was man tut.
Es gibt aber mit RestrictedPython eine Möglichkeit den Zugriff zu beschränken -- also ähnliche Dinge wie in C++ zu machen z.B. gut bei Klassen die Passwörter speichern. Meistens finde ich das ganze aber eher hinderlich -> kein RestrictedPython-Experte.
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Das mit der Variablendeklaration ist schon ein Kreuz mit Python. Ist eigentlich Schade, dass ein Deklarationsmöglichkeit fehlt. Ich komme eigentlich von Delphi und da muß ja nun alles definiert werden.
Aber man kann ja bekanntlich nicht alles haben.
Hans
Aber man kann ja bekanntlich nicht alles haben.
Hans
-
- User
- Beiträge: 69
- Registriert: Donnerstag 29. August 2002, 17:10
- Wohnort: Erfurt
- Kontaktdaten:
Das ist meiner Meinung nach ein wesentlicher Vorteil von Interpretersprachen. Man braucht nicht umständlich irgendwas definieren, kann schnell mal umformen ("0" -> 0) usw.
Hab mich in meiner Turbo Pascal Zeit nur darüber aufgeregt das dauernd Fehler auftreten, nur weil ich zu dumm war aus 20 Möglichkeiten die richtige für die Sache zu finden
Hab mich in meiner Turbo Pascal Zeit nur darüber aufgeregt das dauernd Fehler auftreten, nur weil ich zu dumm war aus 20 Möglichkeiten die richtige für die Sache zu finden