Kurz programovania v Pythone s Linuxom, 4. časť

Program v jazyku Python ilustrujúci koncept dedičnosti tried

V týchto časoch predstieraných zákulisných efektov, ktoré vytvárajú spoločnosti zaoberajúce sa umelou inteligenciou a ich propagandisti, je učenie sa programovania potrebnejšie ako kedykoľvek predtým. V tejto štvrtej časti kurzu programovania v Pythone s Linuxom budeme pokračovať vo vysvetľovaní, ako pochopiť paradigmu objektovo orientovaného programovania. Nezabudnite, že odkaz na predchádzajúcu lekciu je na konci príspevku.

Hoci agenti a modely umelej inteligencie sú schopné porozumieť kódu a písať ho, je stále potrebné, aby im človek vedel dať podrobné pokyny. toho, čo musí robiť. Na to je potrebné nielen pochopiť problém, ktorý chce aplikácia riešiť, ale aj navrhnúť riešenie s ohľadom na vlastnosti jazyka.

Skúsme to objasniť analógiou.

Stavební robotníci stavajú mrakodrapy. Pred začatím výstavby sú však potrební architekti, ktorí navrhnú plány, a inžinieri, ktorí vykonajú statické výpočty a navrhnú elektrické, plynové a vodovodné prípojky. Po dokončení budovy budú musieť iní ľudia určiť interiérový dizajn. Samozrejme, skúsení pracovníci by pravdepodobne mohli odviesť kvalifikovanú prácu, za predpokladu, že nevzniknú žiadne komplikácie. V praxi však nikto nechce podstúpiť toto riziko.

Realita je taká, že vibračné kódovanie prináša lepšie výsledky, čím podrobnejšie sú pokyny. A že veľké spoločnosti utrpeli prerušenia služieb a ich nenahraditeľné databázy boli vymazané príliš podnikavými agentmi umelej inteligencie s nedostatočnými pokynmi.

Kurz programovania v Pythone s Linuxom

V predchádzajúcich článkoch sme videli, že model objektovo orientovaného programovania je založený na 4 pilieroch: objektoch, triedach, metódach a atribútoch. Triedy sú šablóny používané na modelovanie objektov alebo entít, s ktorými pracujeme. Tieto šablóny definujú atribúty, ktoré budú mať objekty, zatiaľ čo metódy definujú správanie objektu.

Rôzne prvky vytvorené pomocou šablóny stanovenej v triedach sa nazývajú inštancie. Napríklad v rámci triedy Operačné systémy máme inštancie: Linux, Windows, macOS. Možno však budeme chcieť vytvoriť triedy, ktoré sa len mierne líšia od existujúcich tried. Nie je potrebné prepisovať kód, pretože môžeme využiť funkciu objektovo orientovaného programovania známu ako dedičnosť.

Pozrime sa na nasledujúci program s pridanou triedou.

Dôvod, prečo nevkladám kód priamo do článku, je, ako som už vysvetlil, ten, že platforma, ktorú používame na publikovanie blogu, nepodporuje odsadzovanie. Táto prax zahŕňa pridávanie medzier alebo tabulátorov (všimnite si znak „alebo tabulátor“, pretože ich nemožno kombinovať), aby sa kód ľahšie pochopil.

Odsadenie uľahčuje hierarchické štruktúrovanie kódu.
Rozlišovanie blokov kódu, ako sú slučky, funkcie alebo triedy. Okrem toho, ak svoje programy v Pythone správne neodsadíte, nebudú fungovať.

Teraz si program rozoberme riadok po riadku.

class Sistemas:

Ako sme videli, tento program vytvára šablónu, na ktorej budú vytvorené inštancie operačného systému.

def __init__(self, nombre, version, derivada):

Tu budujeme triedu. Prvá časť je automatizovaná metóda, ktorá sa používa pri každom vytvorení. Položky v zátvorkách predstavujú parametre, ktoré bude mať objekt. Vždy sa používa `Self` a odkazuje na objekt. Vždy je na prvom mieste. Ostatné parametre sú tie, ktoré sme si stanovili v predchádzajúcich triedach: názov distribúcie Linuxu, verzia a distribúcia, z ktorej je odvodená.

self.nombre = nombre
self.version = version
self.derivada = derivada

Tieto riadky sa používajú na vytvorenie atribútov objektu. Sú to premenné špecifické pre objekt, ktoré fungujú ako premenné v rámci objektu a budú zachované v prípade potreby.

def mostrar_info(self):

Táto metóda definuje, ako sa budú zobrazovať informácie o atribútoch objektu. Parameter `self` označuje, že by sa mali použiť iba parametre uložené ako atribúty.

print(f"Nombre: {self.nombre}")
print(f"Versión: {self.version}")
print(f"Derivada: {self.derivada}")

Tieto 3 riadky označujú, že spôsob zobrazenia informácií o atribútoch je ich vytlačenie na obrazovku.

class SistemaConPeso(Sistemas):

V tomto sa náš program líši od predchádzajúceho. Pridali sme novú rozšírenú triedu postavenú na predchádzajúcej. Preto je názov predchádzajúcej triedy pripojený k názvu triedy v zátvorkách.

def __init__(self, nombre, version, derivada, peso):

Toto je konštruktor podtriedy, takmer rovnaký ako ten, ktorý sme videli predtým, ale s pridaným parametrom hmotnosti.

super().__init__(nombre, version, derivada)

Aby sme sa vyhli opakovaniu kódu, pomocou inštrukcie super programu povieme, že za spracovanie názvu, verzie a derivátu zodpovedá rodičovská trieda.

self.peso = peso

Stále sme sa museli postarať o uloženie atribútu hmotnosti.

def mostrar_info(self):

Keďže cieľom je vyhnúť sa písaniu ďalšieho kódu, namiesto vytvorenia novej funkcie, ktorá zobrazuje dodatočné údaje, upravíme tú, ktorú už máme.
super().mostrar_info()

Zavolajte metódu rodičovskej triedy a nastavte, ako sa majú zobrazovať atribúty uložené v nej.
print(f"Peso: {self.peso}

Pridajte informácie o tom, ako sa majú zobrazovať údaje pre aktuálnu triedu.

sistema = SistemaConPeso("Linux Mint", "22", "Ubuntu", "3GB")

Vytvorte objekt, kde sa budú ukladať informácie s pridaným novým parametrom a uložte ho do systémovej premennej.

sistema.mostrar_info()

Zavolajte metódu zodpovednú za zobrazenie informácií

Tento program samozrejme nemá žiadne skutočné praktické využitie. Nemalo by zmysel zadávať hodnoty atribútov do kódu, pretože by bol zakaždým potrebný programátor, keď by bolo potrebné niečo upraviť. Ako sme videli v príklade s piškvorkami, Python dokáže prijímať a ukladať informácie zadané používateľom pomocou klávesnice. Dokáže to aj čítaním súborov alebo interakciou s databázami.

Bolo to však užitočné pri objasňovaní kľúčových konceptov objektovo orientovaného programovania, ako sú triedy, atribúty, konštruktory, metódy, dedičnosť a polymorfizmus. Sľubujem, že v ďalšom článku dokončím diskusiu o objektovo orientovanom programovaní a začnem hovoriť o tom, ako sa veci robia v Pythone.

Program v jazyku Python napísaný pomocou VS Code
Súvisiaci článok:
Kurz programovania v Pythone s Linuxom, 3. časť