AW: [Python-de] import von modules

Rainer Fischbach fischbach at ecs-gmbh.de
Wed Nov 13 17:10:42 EST 2002


At 15:55 13.11.2002 +0100, you wrote:
>weil unter UNIX geben keine win32 Prozese.
>es hat mir nur interesiert ob eine Moglichkeit gibts nur bestimmte DEFINEs
>aus einem Modul zu importieren...
>
Der Import ist zunächst eine Operation auf dem Namensraum: Er fügt Namen
(entweder den des importierten Moduls oder Namen aus diesem) in den
Namensraum des importierenden Moduls ein. 

Das Dumme dabei ist, dass Python dazu auch das Modul laden, d. h. alle sein
Anweisungen ausführen muss. Wenn darunter welche sind, die auf Unix nicht
funktionieren, dann scheitert auch der Import.

wenn Du irgendwelche Defnitionen auch im Unix-Kontext brauchst, musst Du
sie in ein eigenes Modul auslagern. Etwa so:

my_defs.py:
DEF_abcd = "TEST"

Skript1.py:
import win32process
from my_defs import DEF_abcd 

Skript2.py:
from my_defs import DEF_abcd

eine solche statische Faktorisierung hat gegenüber dynamischen Abfragen der
Art

if sys.platform == 'win32':
   import win32process 
...

den Vorzug zu durchsichtigeren Programmen zu führen (wem sind die
seitenlangen #ifdefs von C-Programmen nicht ein Greuel?)

     
    Rainer Fischbach
______________________________________________________

    ECS
    Engineering Consulting & Solutions GmbH
    Muehlstrasse 3
    D-92318  Neumarkt

    Phone:               +49 (0)9181 - 4764-84
    Fax:                 +49 (0)9181 - 4764-50
    Mobile:              +49 (0)171  - 41 41 570
    e-mail:              fischbach at ecs-gmbh.de
    WWW:                 http://www.ecs-gmbh.de
______________________________________________________






More information about the Python-de mailing list