Kurs programiranja u Pythonu s Linuxom, peti dio

Python je veoma popularan programski jezik.


U ovoj seriji postova za kurs programiranja u Pythonu korištenjem Linuxa, odlučili smo isprobati drugačiji pristup. Umjesto da počnemo s osnovama (ciglama, da tako kažemo), počinjemo s cijelom zgradom, a zatim se bavimo njenim dijelovima.

U ovom slučaju, gradivni blok je paradigma poznata kao objektno orijentisano programiranje. Za kraj ovog dijela kursa, analizirat ćemo ključne koncepte ove paradigme primijenjene na programiranje u Pythonu. Imajte na umu da se link do prethodnog posta nalazi na kraju ovog članka.

Kurs programiranja u Pythonu uz korištenje Linuxa

Ključni koncepti objektno orijentisanog programiranja primijenjeni na Python

Clase

To je šablon koji se koristi za izgradnju objekata. Definiše kako će objekat izgledati i šta može da radi. Slično je receptu za kuhanje. Definiše se naredbom:

class Nombre_de_la_clase

Atributi

To su karakteristike koje opisuju objekt. One djeluju kao varijable koje pripadaju isključivo klasi.

konstruktor

To je posebna metoda koja se automatski izvršava prilikom kreiranja objekta. Odgovorna je za inicijalizaciju atributa objekta.
Metode

To su funkcije definirane unutar klase koje određuju ponašanje objekta.

herencia

To je sposobnost klase da preuzme karakteristike i ponašanja drugih postojećih klasa dodavanjem i mijenjanjem onoga što već postoji. Klasa iz koje su preuzete karakteristike naziva se roditeljska klasa, a ona koja ih prima, s ogromnim nedostatkom originalnosti, naziva se podređena klasa.

Polimorfizam

Govoreći o nedostatku originalnosti, ova karakteristika znači da različite klase mogu imati metode s istim imenom, ali s različitim ponašanjem.
Rukovanje datotekama u Pythonu

U primjerima koje smo ranije naveli, informacije su bile uključene u kod. Ovo je nepraktična metoda jer kod treba mijenjati svaki put kada je potrebno dodati ili izbrisati informacije. Srećom, postoje i drugi načini da se to uradi, kao što je čitanje podataka iz datoteke.
Kreirali smo jednostavnu tekstualnu datoteku s naslovom system.txt i sadržajem

Ubuntu

26.04

Debian

Sada pogledajmo program.

class Sistemas:
Definišemo klasu pod nazivom SYSTEMS kao što smo to uradili i ranije.
def __init__(self, nombre, version, derivada):
Pokrećemo automatski konstruktor koji se bavi dodjeljivanjem parametara.
self.nombre = nombre
self.version = version
self.derivada = derivada

Ove linije spremaju primljene atribute kao vrijednosti objekta.
def mostrar_info(self):
Definišite kako će se prikazivati ​​informacije o atributima.
print(f"Nombre: {self.nombre}")
print(f"Versión: {self.version}")
print(f"Derivada: {self.derivada}")

Upute za ispis atributa objekta na ekranu. Vitičaste zagrade ubacuju vrijednosti varijabli unutar teksta.
with open("sistema.txt", "r") as archivo:
Ova naredba otvara datoteku u načinu čitanja i zatvara je nakon što se blok završi.
lineas = archivo.readlines()
Čita sve linije datoteke i sprema ih u listu. O listama ćemo govoriti u kasnijim datotekama.
nombre = lineas[0].strip()
version = lineas[1].strip()
derivada = lineas[2].strip()

Pristupite svakom redu po njegovoj poziciji i uklonite prekide reda i razmake pomoću naredbe strip.
sistema = Sistemas(nombre, version, derivada)
Kreirajte instancu objekta klase Systems s parametrima koje je pročitao iz datoteke.
sistema.mostrar_info()
Pozovite metodu odgovornu za ispis na ekran
Funkcija open()

Funkcija open() je unaprijed definirana u Pythonu i zahtijeva sljedeće parametre:

fajl

Ovo polje je obavezno i ​​govori programu gdje da pronađe datoteku. Ako se nalazi u istoj mapi kao i program, potrebni su samo naziv datoteke i ekstenzija. U suprotnom, mora se navesti i putanja datoteke.
open("archivo.txt") Kada se datoteka nalazi u trenutnoj mapi.
open("carpeta/archivo.txt") Kada se datoteka nalazi unutar druge mape.
open("/home/usuario/archivo.txt") Označena je mapa unutar lične mape određenog korisnika.
open(3); Datoteka se identificira identifikatorom koji joj dodjeljuje operativni sistem.
način
To je opcionalni parametar koji ukazuje na to kako se datoteka obrađuje.

    • rRežim samo za čitanje. Vraća grešku ako datoteka nije prethodno kreirana.

>w: Zapisuje datoteku i kreira je ako ne postoji. Briše postojeći sadržaj.

  • aKreiraj datoteku ako ne postoji. Ako postoji sadržaj, piši na kraj.
  • xKreira datoteku. Vraća grešku ako ne postoji.
  • r+Čita i zapisuje u datoteku; javlja grešku ako nije prethodno kreirana.
  • w+Čita i zapisuje u datoteku. Briše postojeći sadržaj.
  • a+Pročitajte i napišite na kraju sadržaja.
  • tOvo je zadana opcija; radi s tekstualnim nizovima.
  • bRadi s bajtovima. Idealan je za rad sa slikama ili PDF-ovima.

puferiranje

To je kontrola privremene memorije prije pisanja datoteke. Ne mora se specificirati, ali u nekim slučajevima može biti korisno.

  • 0Bez baferovanja, piše direktno na disk. Idealno za rad sa b-modom.
  • 1Ovo je zadani način rada. Pohranjuje učitane podatke dok ne naiđe na znak za novi red, a zatim ih upisuje u varijablu. Koristi se samo u tekstualnom načinu rada.
  • =Nakon znaka jednakosti, postavlja se vrijednost u bajtovima koja označava veličinu koju bafer treba da ima.
  • -1Operativni sistem određuje veličinu bafera.

Neki primjeri

open("archivo.txt", buffering=0) Ne kreira bafer jer radimo u binarnom režimu.
open("archivo.txt", baferovanje=1) Bafer radi sa prelomima redova
open("archivo.txt", buffering=4096) Postavlja bafer od 4096 bajtova
open("archivo.txt", buffering=-1) Koristi zadani bafer operativnog sistema.

Kodiranje

Postavlja kodiranje znakova za projekat. Ako nije navedeno, koristi se sistemsko kodiranje.

greške

Još jedan opcionalni parametar. Definiše šta treba uraditi kada se pronađu greške u kodu.

  • Strogo: Označava grešku kada se pronađe.
  • Zanemari: Preskoči znakove koje ne može dekodirati.
  • Zamijenite: Zamijenite neidentificirane znakove upitnicima.
  • zamjena obrnute kose kose: Zamijenite znakove koje ignorira nizom \xNN

Newline

Još jedan opcionalni parametar, ali koji može biti koristan pri radu s datotekama generiranim od strane različitih operativnih sistema, je znak za prekid reda. Znak za prekid reda je nevidljivi znak koji operativnom sistemu govori da je jedan red završen i da sljedeći počinje.

Nastavit ćemo razvijati ovu temu i objasniti nove upute u sljedećem članku.

Python program koji ilustruje koncept nasljeđivanja klasa
Vezani članak:
Kurs programiranja u Pythonu sa Linuxom, 4. dio