ausgelagerte Klasse == Modul ??

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.
lordmyder

ausgelagerte Klasse == Modul ??

Beitragvon lordmyder » Dienstag 29. Mai 2007, 12:56

Hallo,
ich habe nur eine definitions Frage.
Ich habe ein Programm geschrieben, dass aus drei Klassen besteht. Wobei ich jede Klasse in eine eigene Datei geschrieben habe.
Es gibt die Grafik-Klasse, in der ich die beiden anderen importiere.
Ist diese aus der Grafik-Klasse ausgelagerte Klasse ein Modul?
Oder was definiert ein Modul?

Danke schon mal,
Gruß
LordMyder
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Dienstag 29. Mai 2007, 13:24

Weigend hat geschrieben:Module sind Dateien, die Definitionen von Klassen, Funktionen, Konstanten sowie direkt ausführbare Python-Anweisungen enthalten können. Der Dateiname endet mit der Extension .py.[...]Bei besonders strikter objektorientierter Programmierung wird manchmal jede Klassendefinition in einem eigenen Modul [...] abgespeichert.


:arrow: Im weiteren Sinne ist jede .py-Datei ein Modul. Im engeren verstehe ich unter einem Modul jedoch nur solche Dateien, die "von selbst nix machen".
lordmyder

Beitragvon lordmyder » Dienstag 29. Mai 2007, 13:36

Danke für die schnelle Antwort!
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 29. Mai 2007, 13:37

Wobei nur Deine "weitere" Definition der offiziellen Definition auch entspricht:
http://docs.python.org/tut/node8.html

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

Beitragvon Leonidas » Dienstag 29. Mai 2007, 21:02

schlangenbeschwörer hat geschrieben:Im weiteren Sinne ist jede .py-Datei ein Modul. Im engeren verstehe ich unter einem Modul jedoch nur solche Dateien, die "von selbst nix machen".

Der weitere Sinn stimmt, der engere Sinn ist Quatsch: jede Python-Datei ist ein Modul. Man kann beispielsweise auch die aktuell ausgeführte Datei in sich selbst importieren. Module können aber auch .pyd-Dateien sein und einige .so-Dateien sind ebenfalls gültige Python-Module. .pyc und .pyo-Dateien sind ebenso Module.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Dienstag 29. Mai 2007, 21:30

Und man kann natürlich auch noch welche mit `new.module()` erstellen.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Mittwoch 30. Mai 2007, 08:02

BlackJack hat geschrieben:Und man kann natürlich auch noch welche mit `new.module()` erstellen.

kannte ich noch nicht, scheint man aber auch nicht mehr zu brauchen... oder doch?
Help on module new:

NAME
new - Create new objects of various types. Deprecated.

FILE
c:\python23\lib\new.py

DESCRIPTION
This module is no longer required except for backward compatibility.
Objects of most types can now be created by calling the type object.
BlackJack

Beitragvon BlackJack » Mittwoch 30. Mai 2007, 09:08

Hm, das wusste ich noch gar nicht. Also muss man in sauberem, neuen Quelltext wohl auf `types.ModuleType()` zurückgreifen.
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Re: ausgelagerte Klasse == Modul ??

Beitragvon Joghurt » Mittwoch 30. Mai 2007, 20:08

lordmyder hat geschrieben:Wobei ich jede Klasse in eine eigene Datei geschrieben habe.
Lass mich raten: du kommst aus der Java-Ecke, oder? :wink:

Du solltest Klassen nach Funktion in Dateien kopieren, (in der Regel) nicht jede einzeln.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], brainstir