Anfänger Fragen

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.
Antworten
Romanday
User
Beiträge: 1
Registriert: Sonntag 30. Juli 2006, 07:01

Beschäftige mich erst seit 1 Woche mit Python.

Erst mal großes Lob an dieses Forum.
Habe schon viele nützliche Artikel gefunden, die mir sehr geholfen haben.

Ich schreib mal kurz auf was Python nicht unterstützt. Korrigiert mich,
wenn ich da falsch liege.

kein:
- Call by Value
- CallBack Funktion auf Re's anwenden
- Rückrefenzierung //1, //2 (re)
- Deklarierung von Konstanten
- privat, public

Gibt eine Funktion mit der ich Listen, Dicts als Tree darstellen kann.
(-> zur Ausgabe mehrerer Dimensionen, ähnlich print_r() <-> PHP)

Kann es Probleme geben, wenn ein Modul mehr als 1x importiert wird?
z.B. 1x im Hauptprogramm, 1x in einer Funktion, 1x in einer Methode?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Romanday hat geschrieben: Ich schreib mal kurz auf was Python nicht unterstützt. Korrigiert mich,
wenn ich da falsch liege.

kein:
- Call by Value
Was meinst du genau damit?
- CallBack Funktion auf Re's anwenden
Doch. Einfach bei re.sub statt einem String eine Funktion übergeben.
- Rückrefenzierung //1, //2 (re)
Natürlich wird das unterstützt. Lies doch mal http://docs.python.org/lib/node115.html, den Abschnitt über sub().
- Deklarierung von Konstanten
- privat, public
Korrekt. Das braucht man auch nicht, wenn man sich an einfache Konventionen hält (z.B. KONSTANT, _privat).
Gibt eine Funktion mit der ich Listen, Dicts als Tree darstellen kann.
(-> zur Ausgabe mehrerer Dimensionen, ähnlich print_r() <-> PHP)
Modul pprint: http://docs.python.org/lib/module-pprint.html
Kann es Probleme geben, wenn ein Modul mehr als 1x importiert wird?
z.B. 1x im Hauptprogramm, 1x in einer Funktion, 1x in einer Methode?
Nein, es wird immer nur einmal importiert. Danach wird das Modul in sys.modules abgelegt und nicht mehr neu geladen (es sei denn, du importierst es über verschiedene Pfade in sys.path, aber als Anfänger passiert dir das eher nicht ;-) ).
BlackJack

Romanday hat geschrieben:Ich schreib mal kurz auf was Python nicht unterstützt. Korrigiert mich,
wenn ich da falsch liege.

kein:
- Call by Value
Ui, das ist ein lustiges Thema. :-)

Das ist Definitionssache. Die Parameterübergabe läuft im grunde wie bei Java und Sun sagt dazu Call By Value, man kann entweder Referenzen oder Grundtypen wie int, char usw als Wert übergeben.

Andere meinen es ist Call By Reference weil die Referenzen auf Objekte übergeben werden. Gegenargument: Es macht keinen Sinn von Call By Reference zu sprechen solange man mit diesen Referenzen nichts machen kann, sprich entscheiden ob man die Referenz selbst meint oder das Objekt dahinter. Diese Möglichkeit hat man weder bei Python noch bei Java.

IMHO macht die Unterscheidung Call By (Reference/Value) nur Sinn, wenn es Referenzen auch als Datentyp in der Sprache gibt.

Im Zusammenhang mit Python hört man auch ab und zu Call By Object.

Unterm Strich bleibt für Deine Liste was Python nicht kann: Es gibt keinen Referenzdatentyp bei den eingebauten Typen.
Antworten