Heim  >  Artikel  >  Backend-Entwicklung  >  Import eines Python-Moduls zur Implementierung der von Ihnen benötigten Funktionen

Import eines Python-Moduls zur Implementierung der von Ihnen benötigten Funktionen

高洛峰
高洛峰Original
2017-03-24 15:56:261574Durchsuche

Mit Modulen können Sie Ihre Python-Codefragmente logisch organisieren.

Durch die Zuweisung verwandten Codes zu einem Modul kann Ihr Code benutzerfreundlicher und verständlicher werden.

Module sind auch Python-Objekte mit zufällig benannten Attributen zur Bindung oder Referenz.

Einfach ausgedrückt ist ein Modul eine Datei, die Python-Code speichert. Module können Funktionen, Klassen und Variablen definieren. Module können auch ausführbaren Code enthalten.

Beispiel

Der Python-Code in einem Modul namens aname befindet sich normalerweise in einer Datei namens aname.py. Das folgende Beispiel ist ein einfaches Modul support.py.

def print_func( par ):

print "Hello : ", par

import Statement

Möchten Sie Python verwenden Quelldatei, führen Sie einfach die Importanweisung in einer anderen Quelldatei aus. Die Syntax lautet wie folgt:

import module1[, module2[,... moduleN]

Wenn der Compiler bei der Interpretation auf eine Importanweisung stößt, wird das Modul importiert, wenn es sich im aktuellen Suchpfad befindet.

Der Suchpfad ist eine Liste aller Verzeichnisse, die der Interpreter zuerst durchsucht. Wenn Sie das Modul hello.py importieren möchten, müssen Sie den Befehl oben im Skript einfügen:

#!/usr/bin/python

# Import module

import support

# Jetzt können Sie die im Modul enthaltenen Funktionen aufrufen

support.print_func("Zara")

Das Ausgabeergebnis des obigen Beispiels:

Hallo: Zara.

Ein Modul wird nur einmal importiert, egal wie oft Sie den Import ausführen. Dadurch wird verhindert, dass importierte Module immer wieder ausgeführt werden.


From...import-Anweisung

Mit der From-Anweisung von Python können Sie einen bestimmten Teil aus einem Modul in den aktuellen Namespace importieren. Die Syntax lautet wie folgt:

>>>from modname import name1[, name2[, ... nameN]]

Zum Beispiel, um die Fibonacci-Funktion des Moduls fib zu importieren , verwenden Sie die folgende Anweisung:

>>>from fib import fibonacci

Diese Anweisung importiert nicht das gesamte fib-Modul in den aktuellen Namespace, sondern führt nur ein einzelnes Fibonacci ein fib in die Ausführung Die globale Symboltabelle dieses deklarierten Moduls.


Aus...import *-Anweisung

Es ist auch möglich, alle Inhalte eines Moduls in den aktuellen Namespace zu importieren, verwenden Sie einfach die folgende Anweisung:

> ;>>from mod_name import *

Dies bietet eine einfache Möglichkeit, alle Projekte in einem Modul zu importieren. Diese Aussage sollte jedoch nicht überstrapaziert werden.


Module suchen

Wenn Sie ein Modul importieren, lautet die Suchreihenfolge des Python-Parsers für Modulspeicherorte:

  • Aktuelles Verzeichnis

  • Wenn es sich nicht im aktuellen Verzeichnis befindet, durchsucht Python jedes Verzeichnis

  • unter der Shell-Variablen PYTHONPATH.

  • Wenn keines von beiden gefunden wird, überprüft Python den Standardpfad. Unter UNIX lautet der Standardpfad im Allgemeinen /usr/local/lib/python/

Der Modulsuchpfad wird in der Variablen sys.path des Systemmoduls gespeichert. Zu den Variablen gehören das aktuelle Verzeichnis, PYTHONPATH und das durch den Installationsprozess festgelegte Standardverzeichnis.


PYTHONPATH-Variable

Als Umgebungsvariable besteht PYTHONPATH aus vielen Verzeichnissen, die in einer Liste installiert sind. Die Syntax von PYTHONPATH ist dieselbe wie die der Shell-Variablen PATH.

In Windows-Systemen lautet der typische PYTHONPATH wie folgt:

set PYTHONPATH=c:python20lib;

In UNIX-Systemen lautet der typische PYTHONPATH wie folgt:

set PYTHONPATH=/usr/local/lib/python

Namespace und Geltungsbereich

Eine Variable ist der Name (Bezeichner), dem das passende Objekt gehört. Ein Namespace ist ein Wörterbuch, das Variablennamen Namen (Schlüssel) und die entsprechenden Objekte (Werte) enthält.

Ein Python-Ausdruck kann auf Variablen im lokalen Namespace und im globalen Namespace zugreifen. Wenn eine lokale Variable denselben Namen wie eine globale Variable hat, überschreibt die lokale Variable die globale Variable.

Jede Funktion hat ihren eigenen Namensraum. Die Gültigkeitsbereichsregeln für Klassenmethoden sind dieselben wie für reguläre Funktionen.

Python errät intelligent, ob eine Variable lokal oder global ist, vorausgesetzt, dass jede innerhalb einer Funktion zugewiesene Variable lokal ist.

Wenn Sie also einer globalen Variablen in einer Funktion einen Wert zuweisen möchten, müssen Sie die globale Anweisung verwenden. Der Ausdruck

global VarName teilt Python mit, dass VarName eine globale Variable ist, sodass Python nicht im lokalen Namespace nach dieser Variablen sucht.

Zum Beispiel definieren wir eine Variable „Geld“ im globalen Namensraum. Anschließend weisen wir der Variablen „Geld“ innerhalb der Funktion einen Wert zu, und Python geht dann davon aus, dass „Geld“ eine lokale Variable ist. Allerdings haben wir vor dem Zugriff keine lokale Variable „money“ deklariert, und das Ergebnis ist ein UnboundLocalError. Das Auskommentieren des Kommentars zur globalen Anweisung kann dieses Problem lösen.

>>>#!/usr/bin/python

>>>Money = 2000

>>>def AddMoney( ):

# Wenn Sie den Code korrigieren möchten, kommentieren Sie Folgendes aus:

# globales Geld

Geld = Geld + 1

>> ;>Geld drucken

>>>AddMoney()

>>>Geld drucken

dir() Funktion

dir() ist eine sortierte Liste von

Strings, deren Inhalt der in einem Modul definierte Name ist.

Die zurückgegebene Liste enthält alle in einem Modul definierten Module, Variablen und Funktionen. Hier ist ein einfaches Beispiel:

>>>#!/usr/bin/python

>>># Importieren Sie das integrierte Mathematikmodul

> ;>>Mathe importieren

>>>content = dir(math)

>>>Inhalt drucken;

Die obiges Beispiel-Ausgabeergebnis:

['doc', '

file', 'name', 'acos', 'asin', 'atan',

'atan2 ', 'ceil', 'cos', 'cosh', 'degrees', 'e', ​​​​'exp',

'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',

'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',

'sqrt', 'tan', 'tanh']

Hier

SonderzeichenDer String-Variablenname zeigt auf den Namen des Moduls und die Datei auf den Namen des Moduls importierte Datei des Moduls.


Funktionen globals() und locals()

Je nachdem, wo sie aufgerufen werden, können die Funktionen globals() und locals() verwendet werden, um Namen im globalen und lokalen Bereich zurückzugeben Namensräume.

Wenn locals() innerhalb einer Funktion aufgerufen wird, werden alle Namen zurückgegeben, auf die in der Funktion zugegriffen werden kann.

Wenn globals() innerhalb einer Funktion aufgerufen wird, werden alle globalen Namen zurückgegeben, auf die in der Funktion zugegriffen werden kann.

Die Rückgabetypen beider Funktionen sind Wörterbücher. Daher können die Namen mit der Funktion „keys()“ extrahiert werden.

reload()-Funktion

Wenn ein Modul in ein Skript importiert wird, wird der Code im obersten Teil des Moduls nur einmal ausgeführt.

Wenn Sie daher den Code der obersten Ebene im Modul erneut ausführen möchten, können Sie die Funktion reload() verwenden. Diese Funktion importiert zuvor importierte Module erneut. Die Syntax lautet wie folgt:

>>>reload(module_name)

Hier sollte module_name direkt den Namen des Moduls anstelle einer Zeichenfolge eingeben. Wenn Sie beispielsweise das Hello-Modul neu laden möchten, gehen Sie wie folgt vor:

>>>reload(hello)

Das Paket in Python

Das Paket ist eine hierarchische Dateiverzeichnisstruktur, die eine Python-Anwendungsumgebung definiert, die aus Modulen und Unterpaketen sowie Unterpaketen unter Unterpaketen besteht.

Stellen Sie sich eine pots.py-Datei im Telefonverzeichnis vor. Diese Datei hat den folgenden Quellcode: print „I'm Pots Phone“

Ähnlich haben wir zwei weitere Dateien, die unterschiedliche Funktionen enthalten:

Phone/Isdn. py enthält die Funktion Isdn( )

Phone/G3.py enthält die Funktion G3()
  • Erstellen Sie nun die Datei init.py im Telefonverzeichnis:
  • Phone/init.py

Wenn Sie Telefon importieren, müssen Sie dies tun, um alle Funktionen nutzen zu können Verwenden Sie explizite Importe in der init.py-Anweisung wie folgt:
  • >>>from Pots import Pots

    >>>from Isdn import Isdn
>>>aus G3 G3 importieren

Nachdem Sie diese Codes zu init.py hinzugefügt haben, sind alle diese Klassen beim Importieren des Telefonpakets verfügbar.

>>>#!/usr/bin/python

>>># Importieren Sie jetzt Ihr Telefonpaket.

>>> ;import Phone

>>>Phone.Pots()

>>>Phone.Isdn()

>>>Phone .G3()

Ausgabeergebnis des obigen Beispiels:

Ich bin Pots Phone

Ich bin 3G Phone

Ich bin ISDN Phone

Wie oben haben wir zum Beispiel nur eine Funktion angegeben , aber Sie können tatsächlich viele Funktionen einfügen. Sie können in diesen Dateien auch Python-Klassen definieren und dann ein Paket für diese Klassen erstellen.

Das obige ist der detaillierte Inhalt vonImport eines Python-Moduls zur Implementierung der von Ihnen benötigten Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn