Wie kann man das Modul-Präfix weglassen?

7

Ich bin sehr neu bei Python, ich habe eine einfache Frage.

Zum Beispiel

Wenn ich das tue

%Vor%

Dann kann ich A.b() verwenden. Ich frage mich, wie man A in A.b() weglässt?

    
Adam Lee 05.07.2017, 09:48
quelle

3 Antworten

17

Wenn Sie b von Modul A verwenden möchten:

%Vor%

Wenn Sie es umbenennen möchten:

%Vor%

Wenn Sie mehrere Objekte benötigen:

%Vor%

Wenn Sie alles brauchen:

%Vor%

Über die Option import * lesen Sie bitte diesen Beitrag . Es ist ziemlich kurz, aber tl; dr: Importieren Sie nicht alles von einem Modul nach from A import * . Wenn Sie wirklich alles aus dem Modul oder einen sehr großen Teil seines Inhalts benötigen, bevorzugen Sie den normalen Import, möglicherweise mit Umbenennung:

%Vor%     
Right leg 05.07.2017, 09:51
quelle
7

Da A ein Modul ist, können Sie Folgendes tun:

%Vor%     
Moses Koledoye 05.07.2017 09:50
quelle
2

Diese Frage wurde bereits beantwortet, aber eine Sache, die bei der Verwendung von Importen zu beachten ist, ist

%Vor%

und

%Vor%

Sind absolut identisch, was Speicher und Leistung betrifft. In beiden Fällen wird module kompiliert und in sys.modules geladen. Der einzige Unterschied ist, was in deinen Namensraum gebracht wird. Im ersten Fall ist es foo . Im zweiten Fall ist es module .

Da die anderen Antworten nicht erklären, warum die Verwendung von from module import * schlecht ist, ist dies der Grund: * importiert alles zur direkten Verwendung in Ihren Namespace. Dies ist keine gute Idee, es sei denn Sie wissen, was Sie tun . Namenskonflikte sind definitiv möglich, besonders beim Importieren mehrerer großer Module.

Das mag eine Frage der Meinung sein, aber ich glaube, import module gefolgt von module.foo() ist sicherer und gibt dem Leser eine bessere Vorstellung von dieser Methode / Attribut, woher sie kam und was sie tut. Lesbarkeit ist wichtig!

    
cᴏʟᴅsᴘᴇᴇᴅ 05.07.2017 10:25
quelle

Tags und Links