Python-Importanweisungen erklärt

Beim Erlernen des Programmierens und beim Lesen einiger Ressourcen wären Sie auf dieses Wort "Abstraktion" gestoßen, was einfach bedeutet, den Code so weit wie möglich zu reduzieren und wiederzuverwenden.

Funktionen und Module erleichtern die Abstraktion. Sie erstellen Funktionen, wenn Sie in einer Datei wiederholt etwas tun möchten.

Module werden angezeigt, wenn Sie eine Gruppe von Funktionen in verschiedenen Quelldateien wiederverwenden möchten. Module sind auch nützlich, um das Programm gut zu strukturieren.

  • Verwenden von Standardbibliotheken und anderen Modulen von Drittanbietern
  • Strukturierung des Programms

Verwenden von Standardbibliotheken

Beispiel: Sie können die Methoden / Funktionen aller Standardbibliotheken in den offiziellen Python-Dokumenten ausführlich lesen.

import time for i in range(100): time.sleep(1) # Waits for 1 second and then executes the next command print(str(i) + ' seconds have passed') # prints the number of seconds passed after the program was started
:Rakete:

Code ausführen

# To calculate the execution time of a part of program import time start = time.time() # code here end = time.time() print('Execution time:' , end-start)
:Rakete:

Code ausführen

# Using math Module import math print(math.sqrt(100)) # prints 10
:Rakete:

Code ausführen

Module von Drittanbietern verwenden

Module von Drittanbietern werden nicht mit Python gebündelt, aber wir müssen sie extern mit Paketmanagern wie pipund installiereneasy install

# To make http requests import requests rq = requests.get(target_url) print(rq.status_code)

Weitere Informationen zum Python-Anforderungsmodul finden Sie hier

Programme strukturieren

Wir wollen ein Programm machen, das verschiedene Funktionen in Bezug auf Primzahlen hat. So lass uns anfangen. Wir werden alle Funktionen in definierenprime_functions.py

# prime_functions.py from math import ceil, sqrt def isPrime(a): if a == 2: return True elif a % 2 == 0: return False else: for i in range(3,ceil(sqrt(a)) + 1,2): if a % i == 0: return False return True def print_n_primes(a): i = 0 m = 2 while True: if isPrime(m) ==True: print(m) i += 1 m += 1 if i == a: break

Jetzt möchten wir die Funktionen verwenden, die wir gerade erstellt haben, prime_functions.pydamit wir eine neue Datei erstellen playground.py, um diese Funktionen zu verwenden.

Bitte beachten Sie, dass dieses Programm viel zu einfach ist, um zwei separate Dateien zu erstellen. Es dient lediglich der Demonstration. Bei großen komplexen Programmen ist es jedoch sehr nützlich, verschiedene Dateien zu erstellen.

# playground.py import prime_functions print(prime_functions.isPrime(29)) # returns True

Importe sortieren

Es wird empfohlen, importModule in drei Gruppen zu sortieren : Standardbibliotheksimporte, verwandte Importe von Drittanbietern und lokale Importe. Innerhalb jeder Gruppe ist es sinnvoll, alphabetisch nach Modulnamen zu sortieren. Weitere Informationen finden Sie in PEP8.

Eines der wichtigsten Dinge für die Python-Sprache ist die Lesbarkeit, und alphabetisch sortierte Module lassen sich schneller lesen und suchen. Außerdem ist es einfacher zu überprüfen, ob etwas importiert wurde, und doppelte Importe zu vermeiden.

Aus X importieren Y: ein Beispiel

Hier ist ein Beispielproblem:

>>> from math import ceil, sqrt >>> # here it would be >>> sqrt(36) <<< 6
:Rakete:

Code ausführen

Oder wir könnten stattdessen diesen verwenden:

>>> import math >>> # here it would be >>> math.sqrt(36) <<< 6
:Rakete:

Code ausführen

Dann würde unser Code wie math.sqrt(x)statt aussehen sqrt(x). Dies geschieht, weil bei der Verwendung selbst import xein Namespace xerstellt wird, um Namenskonflikte zu vermeiden. Sie müssen auf jedes einzelne Objekt des Moduls als zugreifen x..

Wenn wir jedoch verwenden from x import y, stimmen wir zu y, den globalen Hauptnamespace zu erweitern. Während wir dies verwenden, müssen wir sicherstellen, dass wir kein Objekt mit demselben Namen in unserem Programm haben.

Niemals verwenden, from x import ywenn ein Objekt mit dem Namen ybereits vorhanden ist

Zum Beispiel gibt es im osModul eine Methode open. Wir haben aber sogar eine eingebaute Funktion namens open. Also, hier sollten wir vermeiden, zu verwenden from os import open.

Wir können sogar verwenden form x import *, dies würde alle Methoden und Klassen dieses Moduls in den globalen Namespace des Programms importieren. Dies ist eine schlechte Programmierpraxis. Bitte vermeiden Sie es.

Im Allgemeinen sollten Sie dies from x import yeinfach wegen der Probleme vermeiden, die es in großen Programmen verursachen kann. Sie wissen beispielsweise nie, ob ein anderer Programmierer eine neue Funktion erstellen möchte, die zufällig der Name einer der vorhandenen Funktionen ist. Sie wissen auch nicht, ob Python die Bibliothek ändert, aus der Sie Funktionen importieren. Während diese Probleme bei Soloprojekten, wie bereits erwähnt, nicht so häufig auftreten, ist dies eine schlechte Programmierpraxis und sollte vermieden werden.