Deutsche Bücher vs. englische Bücher

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ratna_fong hat geschrieben:
Leonidas hat geschrieben: codecs ist der Name an den das Modul-Objekt gebunden wird.
die Funktion open() ist also das Modul-Objekt, das an den Namen codecs gebunden wird?
Nein, ``open`` ist ein weiteres Objekt (ein Funktionsobjekt), welches über das Modulobjekt erreichbar ist. Und ``open()`` ruft dieses Objekt auf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

ratna_fong hat geschrieben:Hierzu mal zur Sicherheit eine Verständnisfrage:

Code: Alles auswählen

i = 5
# 5 ist das Objekt 
# i ist der Name  
# das Objekt 5 wir an den Namen i gebunden
Ja, hast du so richtig verstanden.
ratna_fong
User
Beiträge: 38
Registriert: Samstag 3. Juli 2010, 10:43

codecs.open("sample.txt")

codecs ist also der Name(Bezeichner), an den das FunktionsOBJEKT open() gebunden wird.

Ich hab immer gefragt, was denn codecs in codecs.open() ist.
da wurde immer gesagt, codecs sei das Objekt, finde ich irreführend. Naja, egal.

Wenn man also eine Funktion, eine Klasse, oder was auch immer (was ja alles Objekte sind) in dem Modul codecs verwenden will, muss man also immer den Bezeichner/Namen "codecs" nehmen, an den ein Objekt gebunden wird, insofern man nicht explizit folgendes definiert:

Code: Alles auswählen

import codecs as ratna

ratna.open("sample.txt")
Bitte um Korrektur falls noch Denkfehler ist. Danke..

Ratna
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Rebecca hat geschrieben:
ratna_fong hat geschrieben:die Funktion open() ist also das Modul-Objekt, das an den Namen codecs gebunden wird?
Nein. Das codecs-Modul ist das Modul-Objekt, das an den Namen codecs gebunden wird.
Und die Funktion `open` ist ein Attribut diese Objekts.

Edit: Du hast 2 Objekte! Das Objekt-Modul, das über den Bezeichner "codecs" aufrufbar ist, und das Funktions-Objekt, das über den Attributzugriff des Moduls erreichbar ist.

Edit2:

Code: Alles auswählen

import codecs
func = codecs.open
func("test.txt")
Damit wird z.B. das Funktions-Objekt an den Bezeichner "func" gebunden und kann über den Bezeichner auch aufgerufen werden.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ratna_fong hat geschrieben:codecs ist also der Name(Bezeichner), an den das FunktionsOBJEKT open() gebunden wird.
Nein, das Funktionsobjekt ist an den Namen ``open`` gebunden. An den Namen ``codecs`` ist das Modulobjekt gebunden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ratna_fong
User
Beiträge: 38
Registriert: Samstag 3. Juli 2010, 10:43

vielen Dank Jungs,
habs (endlich) verstanden. Sorry für die Umstände...
Gruss,
Eure Ratna
Antworten