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

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:

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

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

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

Gruß,
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
BlackJack

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

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

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

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