import a.b

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
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Mittwoch 13. Dezember 2006, 20:35

Ich möchte gern von einem Modul A nur die Funktion/Methode b importieren. Üblicherweise geht das über

Code: Alles auswählen

from A import b
Das Dumme ist nur, dass ich anschließend direkt mit

Code: Alles auswählen

b(args)
arbeiten muss. Um auch langfristig den Überblick zu behalten, woher b() eigentlich stammt, wäre es mir lieber, stattdessen mit

Code: Alles auswählen

A.b(args)
zu arbeiten. Das geht nach meinem aktuellen Wissensstand nur, wenn ich über import A das komplette Modul importiere. Ich hätte aber gern trotzdem nur die eine Funktion/Methode.

Geht das und wenn ja, wie sieht die import-Anweisung dafür aus?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mittwoch 13. Dezember 2006, 20:48

Was passt dir an

Code: Alles auswählen

import A
A.b(args)
nicht?

Hint:

Code: Alles auswählen

from A import b
ist äquivalent zu

Code: Alles auswählen

import A as _tmpname
b = A.b
del _tmpname
Es muss immer das komplette Modul kompiliert und ausgeführt werden, da ja Python vorher nicht weiß, was am Schluss an den Namen "b" gebunden ist.
Zuletzt geändert von birkenfeld am Mittwoch 13. Dezember 2006, 20:53, insgesamt 1-mal geändert.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Mittwoch 13. Dezember 2006, 20:51

Mir kam die Idee, dass man damit ein paar Ressourcen sparen könnte, v.a. wenn man was für Kleingeräte entwickelt... so dass eben nicht das komplette Modul eingebunden werden muss.

Laut deiner Äquivalenzregel ist es dann aber ganz offensichtlich völlig egal, also freunde ich mich mit import A an.

Danke!
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mittwoch 13. Dezember 2006, 20:54

Da hilft es nur, viele kleine Module anstatt eines großen zu haben.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Mittwoch 13. Dezember 2006, 22:10

droptix hat geschrieben:Mir kam die Idee, dass man damit ein paar Ressourcen sparen könnte, v.a. wenn man was für Kleingeräte entwickelt... so dass eben nicht das komplette Modul eingebunden werden muss.
Muss es eh... Die Methode b muss ja erstmal gefunden werden.

Ich denke, du optimierst da an der falschen Stelle.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Donnerstag 14. Dezember 2006, 08:58

Es war nur eine Idee :P
Antworten