[Python-de] Re: import von modules
Gerhard Häring
gerhard.haering at opus-gmbh.net
Wed Nov 13 15:17:19 EST 2002
In article <IOEEIPCHIDIHEFEJLJKKIENEDCAA.josef.cihal at irm.at>, Josef Cihal wrote:
> Skript1.py:
>>import win32process
>>DEF_abcd = "TEST"
>
> Skript2.py:
> from Skript1 import DEF_abcd
>
> Ich brauche unter UNIX aus einem modul Skript1 nur die Defines zu
> importieren(nihct die win32process library),
> es werden aber gleichzeitig auch die imports in der Importdatei mitgenommen?
> Wie geht es anders?
Hmm.
<Glaskugel>
Du hast wahrscheinlich "from Skript1 import *" gemacht und damit
deinen Namespace zugemüllt (mit den Modulen, die Skript1
verwendet, z. B).
Dazu gibt es verschiedene Lösungen:
1) kein "from ... import *" verwenden, sondern nur
"from .. import name1, name2, ..."
2) nur ein einfaches "import" verwenden; wenn die Modulnamen zu
lang sind, gibt es die Möglichkeit, ein Modul "umzubenennen":
z. B. "import irrelangername as iln"
3) Du tust am Schluss von Skript1 eine Zeile rein, wie:
__all__ = ["DEF_abcd"]
Dann importiert "from Skript1 import *" nur, was in diesem
Modul in __all__ steht.
Dazu sollte aber das Modul für diese Art von import
vorgesehen sein, sprich die Namen sollten so gewählt sein,
dass Namenskonflikte sehr unwahrscheinlich sind. wxPython z.
B. hat das wx-Präfix vor allen Bezeichnern, darum ist es
sicher (und üblich), es mit "from wxPython.wx import *" zu
verwenden.
</Glaskugel>
--
Gerhard Häring
OPUS GmbH München
Tel.: +49 89 - 889 49 7 - 32
http://www.opus-gmbh.net/
More information about the Python-de
mailing list