[Hikari-Python] Kapitel 08-01 Modul (Importmodul)

[Python] Kapitel 08-01 Module importieren

Ich habe meine eigene ursprüngliche Funktion in Kapitel 06 erstellt. Sie können andere Personen diese selbst erstellten Funktionen verwenden lassen. Sie können mehrere von Ihnen erstellte Funktionen in einer Datei kombinieren. Diese Datei wird als ** Modul (Teil) ** bezeichnet.

Tatsächlich werden verschiedene Module, die von Python-Programmierern auf der ganzen Welt erstellt wurden, im Internet veröffentlicht. Diese Module sind kostenlos und werden von ** import ** verwendet.

Es gibt verschiedene öffentlich verfügbare Module, z. B. Module für KI und IoT sowie Module für die Erstellung von Spielen und die Datenanalyse.

In diesem Kapitel wird zunächst erläutert, wie Sie selbst erstellte Module importieren und anschließend im Internet erstellte Module importieren.

Importieren Sie Ihr eigenes Modul

Lassen Sie uns tatsächlich einige selbst erstellte Funktionen erstellen und als Module speichern. Erstellen Sie zunächst ein Modul, aber erstellen Sie noch nicht chap08 </ font>, sondern erstellen Sie es direkt unter ** [Python] ** unten. (Klicken Sie mit der rechten Maustaste auf [Python], wie unten gezeigt.) image.png

Speichern Sie es dann unter dem Dateinamen sampmod08_01 </ font>. (Es ist sampmod08_01. Es ist nicht sampmod08-01. → Es kann nicht mit einem Bindestrich im Moduldateinamen gelesen werden.)

.sampmod08_01.py


def my_func():
    print('Es wird von der Funktion im Modul ausgeführt.')

def calc_func(x, y):
    return x**2 + y

my_func()
print(calc_func(3, 3))

Erstellen Sie als Nächstes ein neues chap08 </ font> und darin den Dateinamen samp08-01-01.py </ font> Erstellen Sie eine Datei mit und schreiben Sie den folgenden Code. Führen Sie dann samp08-01-01.py </ font> aus.

.samp08-01-01.py


import sampmod08_01

[Ausführungsergebnis] </ font> Es wird von der Funktion im Modul ausgeführt. 12

Die ** import-Anweisung ** lädt Ihr eigenes Modul ** sampmod08_01.py ** und führt es aus.

Dies kann auch mit ** Python Console ** erfolgen. Geben Sie den folgenden Code über die ** Python-Konsole ** ein.

>>> import sampmod08_01
Es wird von der Funktion im Modul ausgeführt.
12

Sie können sehen, dass dasselbe Ergebnis ausgegeben wird, auch wenn Sie es mit Python Console importieren. * </ font> Klicken Sie nach der Ausführung in Python Console auf Folgendes, um den Vorgang zu beenden. (Weil es importiert bleibt) image.png image.png

Rufen Sie die importierte Funktion auf

Lassen Sie uns nun das vorherige Modul ein wenig ändern. Erstellen Sie nach wie vor den Dateinamen sampmod08_02 </ font> direkt unter ** [Python] **. Geben Sie dann den folgenden Code ein.

.sampmod08_02.py


def my_func():
    print('Es wird von der Funktion im Modul ausgeführt.')

def calc_func(x, y):
    return x**2 + y

Dieses Mal habe ich die aufrufende Funktion im Modul nicht erstellt. Betrachten Sie dies ** Aufrufen einer Funktion von außerhalb des Moduls **. Erstellen Sie eine Datei mit dem Dateinamen samp08-01-02.py </ font> in chap08 </ font> und verwenden Sie den folgenden Code Bitte schreibe. Führen Sie dann samp08-01-02.py </ font> aus.

.samp08-01-02.py


import sampmod08_02

sampmod08_02.my_func()
print(sampmod08_02.calc_func(3, 3))

[Ausführungsergebnis] </ font> Es wird von der Funktion im Modul ausgeführt. 12

Dieses Mal gibt es keinen Anrufer im Modul, sondern in ** samp08-01-02.py **. Beim Aufruf einer Funktion in einem anderen Modul

Modulname zum Aufrufen.Funktionen im aufzurufenden Modul

Es kann im Format aufgerufen werden.

Wie man ein Modul alias

Früher habe ich beim Aufrufen einer Funktion in einem anderen Modul diese als ** sampmod08_02.my_func () ** oder ** sampmod08_02.calc_func (3, 3) ** bezeichnet, aber der Modulname ist lang und die Eingabe dauert einige Zeit. Es wird dauern.

In solchen Fällen ist es üblich, ** als ** zu verwenden, um einen Alias anzugeben.

Importieren Sie den Modulnamen, der als Alias-Modul aufgerufen werden soll

Erstellen Sie eine Datei mit dem Dateinamen samp08-01-03.py </ font> in chap08 </ font> und verwenden Sie den folgenden Code Bitte schreibe. Führen Sie dann samp08-01-03.py </ font> aus.

.samp08-01-03.py


import sampmod08_02 as sm0802

sm0802.my_func()
print(sm0802.calc_func(3, 3))

[Ausführungsergebnis] </ font> Es wird von der Funktion im Modul ausgeführt. 12

Durch die Angabe des Modulalias denke ich, dass der Modulname etwas kürzer ist. Wenn Sie zur Verwendung in der KI von außen lesen, geben Sie häufig einen Alias an.

Wenn Sie genau hinschauen, verwenden Sie das vorherige Modul erneut. Sie können sehen, wie die Module wiederverwendet werden, ohne nacheinander neue Module erstellen zu müssen. Dies ist auch der Vorteil des Moduls.

Import von von

Nach dem Import stellte ich fest, dass ich Funktionen in anderen Modulen ausführen konnte. Ich habe auch die Angabe von Aliasen angesprochen. Es ist jedoch ohnehin schwierig, den Modulnamen (Alias) wie ** sm0802.my_func () ** anzugeben.

Sie können dies also lösen, indem Sie beim Importieren von verwenden. Geben Sie im Allgemeinen Folgendes an.

vom Modulnamen Importfunktionsname 1,Funktionsname 2 ...

Lass es uns tatsächlich schreiben. Importieren wir die sampmod08_02 </ font> von früher. Dieses Mal werde ich es von ** Python Console ** ausführen.

>>> from sampmod08_02 import my_func
>>> my_func()
Es wird von der Funktion im Modul ausgeführt.
>>> sampmod08_02.calc_func(3, 10)
19

Zuerst lädt ** von ** den Modulnamen und ** import ** lädt die ** my_func-Funktion **. Auf diese Weise können Sie die Funktion nur mit ** my_func () ** aufrufen, ohne ** sampmod08_02.my_func () ** anzugeben.

Beachten Sie, dass ** calc_func ** nicht anstelle von ** import ** angegeben wird. Sie müssen daher ** sampmod08_02.calc_func (3, 10) ** festlegen, um es aufzurufen.

Über \ _ \ _ Name \ _ \ _ == '\ _ \ _ main \ _ \ _'

Ich habe diesen ** \ _ \ _ Namen \ _ \ _ == '\ _ \ _ main \ _ \ _' ** in der Praxis nicht gesehen, aber vielleicht ist es eine Frage in der Prüfung zum Basic Information Engineer. Ich habe es in dem Sinne geschrieben, dass Sie nicht in Panik geraten sollten, wenn Sie sich diesen Code ansehen.

Zunächst das folgende Programm in ** samp08-01-01.py ** geschrieben,

.sampmod08_01.py


def my_func():
    print('Es wird von der Funktion im Modul ausgeführt.')

def calc_func(x, y):
    return x**2 + y

my_func()
print(calc_func(3, 3))

Ich habe bestätigt, dass dieses Modul beim Importieren wie folgt ausgeführt wird.

>>> import sampmod08_01
Es wird von der Funktion im Modul ausgeführt.
12

Sie können jedoch auch verhindern, dass die Funktionen im Modul aufgerufen werden, selbst wenn Sie sie importieren, um beispielsweise den Vorgang zu überprüfen. Umgekehrt kann es ausgegeben werden, wenn das Modul selbst ausgeführt wird. Erstellen Sie den Dateinamen sampmod08_03 </ font> direkt unter ** [Python] **. Geben Sie dann den folgenden Code ein.

sampmod08_03.py


def my_func():
    print('Es wird von der Funktion im Modul ausgeführt.')


def calc_func(x, y):
    return x**2 + y


if __name__ == '__main__':
    my_func()
    print(calc_func(3, 4))

Versuchen Sie dies in die ** Python Console ** zu importieren. Geben Sie den folgenden Code über die ** Python-Konsole ** ein. (Sie können wahrscheinlich sehen, dass nichts ausgegeben wird.)

>>> import sampmod08_03

Dazu schreiben Sie die Bedingung ** \ _ \ _ name \ _ \ _ == '\ _ \ _ main \ _ \ _' ** in die if-Anweisung, damit die Funktion beim Import nicht plötzlich aufgerufen wird. Du kannst durchgehen.

Um diese Funktion auszuführen, müssen Sie die Funktion in dem von ** Python Console ** importierten Modul angeben und ausführen. ..

>>> import sampmod08_03
>>> sampmod08_03.my_func()
Es wird von der Funktion im Modul ausgeführt.
>>> sampmod08_03.calc_func(3,5)
14

Wenn Sie ** sampmod08_03.py ** früher ausführen, lautet die Ausgabe wie folgt. Da dies mit dem Modul sampmod08_03.py als Haupt ausgeführt wird, ist es möglich, die Funktion in der if-Anweisung aufzurufen. (Im Ausführungsergebnis sehen Sie, dass das Ergebnis der Funktion calc_func unterschiedlich ist.)

[Ausführungsergebnis] </ font> Es wird von der Funktion im Modul ausgeführt. 13

Schließlich

Dieses Mal habe ich den Import eines von mir erstellten Moduls angesprochen. Von nun an wird der Import von Modulen bei der Erstellung von AI- und IoT-bezogenen Programmen selbstverständlich sein. Ich habe das Laden externer Module und Bibliotheken (später beschrieben) noch nicht angesprochen, aber ich werde sie im gleichen Importformat laden, also lassen Sie es uns für die Zukunft gedrückt halten.

Zurück zu [Link zum Inhaltsverzeichnis]