Python-Programmierkurs unter Linux, Teil 5

Python ist eine sehr beliebte Programmiersprache.


In dieser Artikelreihe zum Python-Programmierkurs unter Linux haben wir uns für einen anderen Ansatz entschieden. Anstatt mit den Grundlagen (den Bausteinen sozusagen) anzufangen, beginnen wir mit dem gesamten Gebäude und kümmern uns dann um seine einzelnen Teile.

In diesem Fall bildet das Paradigma der objektorientierten Programmierung die Grundlage. Zum Abschluss dieses Kursteils analysieren wir die Schlüsselkonzepte dieses Paradigmas in Anwendung auf die Programmierung mit Python. Den Link zum vorherigen Beitrag finden Sie am Ende dieses Artikels.

Python-Programmierkurs unter Linux

Wichtige Konzepte der objektorientierten Programmierung angewendet auf Python

Klasse

Es handelt sich um die Vorlage, die zum Erstellen von Objekten verwendet wird. Sie definiert, wie ein Objekt aussieht und was es kann. Sie ist vergleichbar mit einem Kochrezept. Sie wird mit folgendem Befehl definiert:

class Nombre_de_la_clase

Attribute

Dies sind die Merkmale, die ein Objekt beschreiben. Sie fungieren als Variablen, die ausschließlich zu dieser Klasse gehören.

Bauherr

Es handelt sich um eine spezielle Methode, die beim Erstellen eines Objekts automatisch ausgeführt wird. Sie ist für die Initialisierung der Attribute des Objekts zuständig.
Methoden

Dies sind innerhalb einer Klasse definierte Funktionen, die das Verhalten des Objekts bestimmen.

Erbe

Es handelt sich um die Fähigkeit einer Klasse, die Eigenschaften und Verhaltensweisen anderer bestehender Klassen anzunehmen, indem sie bereits vorhandene Eigenschaften erweitert und modifiziert. Die Klasse, von der die Eigenschaften übernommen werden, wird als Elternklasse bezeichnet, und die Klasse, die sie ohne nennenswerte Eigenständigkeit aufnimmt, wird als Kindklasse bezeichnet.

Polymorphismus

Apropos mangelnde Originalität: Diese Eigenschaft bedeutet, dass verschiedene Klassen Methoden mit demselben Namen, aber unterschiedlichem Verhalten haben können.
Dateiverarbeitung in Python

In den zuvor genannten Beispielen waren die Informationen im Code enthalten. Dies ist unpraktisch, da der Code jedes Mal angepasst werden muss, wenn Informationen hinzugefügt oder gelöscht werden sollen. Glücklicherweise gibt es Alternativen, beispielsweise das Einlesen der Daten aus einer Datei.
Wir haben eine einfache Textdatei mit dem Titel system.txt und folgendem Inhalt erstellt:

Ubuntu

26.04

Debian

Schauen wir uns nun das Programm an.

class Sistemas:
Wir definieren eine Klasse namens SYSTEMS, wie wir es bereits zuvor getan haben.
def __init__(self, nombre, version, derivada):
Wir starten den automatischen Konstruktor, der die Zuweisung der Parameter übernimmt.
self.nombre = nombre
self.version = version
self.derivada = derivada

Diese Zeilen speichern die empfangenen Attribute als Objektwerte.
def mostrar_info(self):
Definieren Sie, wie die Attributinformationen angezeigt werden sollen.
print(f"Nombre: {self.nombre}")
print(f"Versión: {self.version}")
print(f"Derivada: {self.derivada}")

Anleitung zum Ausgeben der Objektattribute auf dem Bildschirm. Die geschweiften Klammern fügen die Variablenwerte in den Text ein.
with open("sistema.txt", "r") as archivo:
Dieser Befehl öffnet die Datei im Lesemodus und schließt sie, sobald der Block fertig ist.
lineas = archivo.readlines()
Es liest alle Zeilen einer Datei und speichert sie in einer Liste. Wir werden in späteren Dateien über Listen sprechen.
nombre = lineas[0].strip()
version = lineas[1].strip()
derivada = lineas[2].strip()

Greifen Sie über ihre Position auf jede Zeile zu und entfernen Sie Zeilenumbrüche und Leerzeichen mit dem Befehl strip.
sistema = Sistemas(nombre, version, derivada)
Erstelle eine Instanz des Systems-Klassenobjekts mit den Parametern, die es aus der Datei liest.
sistema.mostrar_info()
Rufen Sie die Methode auf, die für die Ausgabe auf dem Bildschirm zuständig ist.
Die open()-Funktion

Die Funktion open() ist in Python vordefiniert und benötigt die folgenden Parameter:

Reichen Sie das

Dieses Feld ist erforderlich und gibt dem Programm den Speicherort der Datei an. Befindet sich die Datei im selben Ordner wie das Programm, genügen Dateiname und Dateiendung. Andernfalls muss auch der Dateipfad angegeben werden.
open("archivo.txt") Wenn sich die Datei im aktuellen Ordner befindet.
open("carpeta/archivo.txt") Wenn sich die Datei in einem anderen Ordner befindet.
open("/home/usuario/archivo.txt") Der entsprechende Ordner innerhalb des persönlichen Ordners eines bestimmten Benutzers wird angezeigt.
open(3); Eine Datei wird durch die ihr vom Betriebssystem zugewiesene Kennung identifiziert.
Model
Es handelt sich um einen optionalen Parameter, der angibt, wie die Datei behandelt wird.

    • rSchreibgeschützter Modus. Gibt einen Fehler zurück, wenn die Datei zuvor nicht erstellt wurde.

>wSchreibt die Datei und erstellt sie, falls sie noch nicht existiert. Löscht den vorhandenen Inhalt.

  • aErstelle die Datei, falls sie noch nicht existiert. Falls sie bereits Inhalt enthält, schreibe ans Ende der Datei.
  • xErstellt die Datei. Gibt einen Fehler zurück, falls sie nicht existiert.
  • r+: Liest und schreibt die Datei; gibt eine Fehlermeldung aus, wenn sie nicht zuvor erstellt wurde.
  • w+Liest und schreibt die Datei. Löscht vorhandene Inhalte.
  • a+Lesen und schreiben Sie am Ende des Inhalts.
  • tDies ist die Standardoption; sie funktioniert mit Textzeichenfolgen.
  • bEs arbeitet mit Bytes. Es eignet sich ideal für die Bearbeitung von Bildern oder PDFs.

Pufferung

Es handelt sich um die Kontrolle des temporären Speichers vor dem Schreiben einer Datei. Sie muss nicht explizit angegeben werden, kann aber in manchen Fällen nützlich sein.

  • 0Ohne Zwischenspeicherung, schreibt direkt auf die Festplatte. Ideal für die Arbeit mit dem B-Modus.
  • 1Dies ist der Standardmodus. Er speichert die geladenen Daten, bis ein Zeilenumbruchzeichen auftritt, und schreibt sie dann in die Variable. Er wird nur im Textmodus verwendet.
  • =Nach dem Gleichheitszeichen wird ein Wert in Bytes angegeben, der die Größe des Puffers angibt.
  • -1Die Puffergröße wird vom Betriebssystem bestimmt.

Beispiele

open("archivo.txt", buffering=0) Es wird kein Puffer erstellt, da wir im Binärmodus arbeiten.
open("archivo.txt", (Pufferung=1) Der Puffer funktioniert mit Zeilenumbrüchen.
open("archivo.txt", buffering=4096) Legt einen Puffer von 4096 Bytes fest.
open("archivo.txt", buffering=-1) Verwendet den Standardpuffer des Betriebssystems.

Codierung

Legt die Zeichenkodierung für das Projekt fest. Falls keine Kodierung angegeben ist, wird die Systemkodierung verwendet.

Fehler

Ein weiterer optionaler Parameter. Definiert, was bei gefundenen Codierungsfehlern geschehen soll.

  • Streng: Zeigt einen Fehler an, wenn einer gefunden wird.
  • Ignorieren: Überspringen Sie die Zeichen, die nicht dekodiert werden können.
  • Ersetzen: Nicht identifizierte Zeichen werden durch Fragezeichen ersetzt.
  • Backslash-Ersetzung: Ersetzen Sie die ignorierten Zeichen durch die Sequenz \xNN

Neue Zeile

Ein weiterer optionaler Parameter, der sich jedoch bei der Arbeit mit Dateien verschiedener Betriebssysteme als nützlich erweisen kann, ist der Zeilenumbruch. Ein Zeilenumbruch ist ein unsichtbares Zeichen, das dem Betriebssystem signalisiert, dass eine Zeile beendet und die nächste begonnen hat.

Wir werden dieses Thema weiterentwickeln und im nächsten Artikel neue Anweisungen erläutern.

Python-Programm zur Veranschaulichung des Konzepts der Klassenvererbung
Verwandte Artikel:
Python-Programmierkurs mit Linux Teil 4