Programiranje z Python ti odpira številne možnosti, ki presegajo preproste skripte. Osrednja komponenta v objektno usmerjenem programiranju je delo s razredi. Ti predstavljajo osnovo za objekte in ti omogočajo, da ustvariš in upravljaš s kompleksnimi podatkovnimi strukturami. V tem priročniku se boš naučil, kako definirati svoje razrede v Pythonu, da bi učinkovito izkoristil njihove lastnosti in metode.

Najpomembnejše spoznanje

  • Razredi so ključ do objektno usmerjenega programiranja v Pythonu.
  • Initializer (konstruktor) ti omogoča, da ob ustvarjanju razreda definiraš specifične lastnosti.
  • Metode v razredih ti omogočajo, da kapsuliraš funkcije, ki delujejo na lastnostih objekta.
  • Dostop do lastnosti se izvaja preko operatorske pike.

Korak za korakom vodič

Začnimo z osnovami strukture razredov v Pythonu. Najprej moraš definirati nov razred z ključno besedo class. To lahko storiš v svojem Python kodi, kot sledi:

Ustvarjanje lastnih razredov v Pythonu

Tukaj imamo prazen razred z imenom Zaposleni. Najprej ga lahko definiraš brez parameterov, kar pomeni, da bo razred ustvarjen brez specifične inicializacije. To je pomembna osnova za zagotavljanje, da kasneje ne dobiš napak pri ustvarjanju objektov.

Zdaj ustvari objekt tega razreda. To lahko storiš tako, da le uporabiš ime razreda in postaviš prazne oklepaje:

V tem primeru imamo objekt Zaposleni, ki smo ga ravno ustvarili. Naslednji korak je, da razred razširimo z lastnostmi. Na primer, lahko bi razredu Zaposleni dodali ime.

Najprej moraš definirati initializer, ki služi kot konstruktor tvojega razreda. To se zgodi z metodo __init__.

Ustvarjanje lastnih razredov v Pythonu

Tukaj vidiš, kako se definira __init__ konstruktor. Ime posredujemo kot parameter in uporabimo self, da shranimo ime za trenutni objekt.

Zdaj, ko imaš lastnost, lahko ob ustvarjanju objekta neposredno posreduješ ime:

Ustvarjanje lastnih razredov v Pythonu

Ko zdaj ustvariš objekt udeleženec z imenom "Jan", se bo ime shranilo v instanci. Preko funkcionalnosti samodejnega dopolnjevanja lahko preveriš, ali je ime pravilno nastavljeno.

Za uporabo lastnosti jih lahko pokličeš s pomočjo operatorske pike:

Ustvarjanje lastnih razredov v Pythonu

Tukaj je točki, kjer lahko dostopaš do lastnosti svojega objekta. V tem primeru izpišeš ime udeleženca.

Poleg lastnosti lahko implementiraš tudi metode. Ustvarjanje metode deluje podobno kot definicija funkcije:

Ustvarjanje lastnih razredov v Pythonu

Tukaj definiraš metodo prijava. Spet opazite, da se self samodejno posreduje kot parameter metodi za dostop do instance. Pri prijavi bi lahko na primer natisnili sporočilo o uspehu:

Ustvarjanje lastnih razredov v Pythonu

Ko pokličeš metodo prijava, to izgleda tako:

Ustvarjanje lastnih razredov v Pythonu

Tukaj kličeš metodo na instanci udeleženec, kar daje povratno informacijo o prijavi.

Na koncu lahko tudi parametre posredujemo metodam, podobno kot pri funkcijah. Na primer metodo odjava, ki pričakuje parameter za predčasno odjavo:

Ustvarjanje lastnih razredov v Pythonu

Tukaj analiziraš, ali se želi udeleženec predčasno odjaviti, in izpišeš ustrezno sporočilo.

ScreenShot_320

To ti pokaže, kako interaktivni lahko postanejo tvoji razredi in metode ter kako reagirajo na vnose.

Na koncu bi morali še enkrat povzeti osnovna načela, ki smo se jih naučili. Definicija razredov vključuje definiranje atributov in metod, ki so relevantni za pripadajoče objekte. Konstruktor __init__ je ključen za nastavitev atributov ob ustvarjanju objekta.

Rezime – Ustvarjanje in uporaba lastnih razredov v Pythonu

Razumevanje in uporaba teh osnovnih načel ti omogoča, da v Pythonu razviješ zmogljive in fleksibilne programe. Lahko ustvariš razrede, ki kapsulirajo specifične funkcije in lastnosti, da bi programiranje postalo bolj uporabniku prijazno in učinkovito.

Pogosto zastavljena vprašanja

Kako definiram razred v Pythonu?Uporabi ključno besedo class, sledeno z imenom razreda in dvopičjem.

Katere je namen konstruktorja __init__?Uporablja se za inicializacijo ob ustvarjanju objekta.

Kako dostopam do lastnosti objekta?Uporabi operatorsko piko, sledeno z imenom lastnosti, npr. objekt.lastnost.

Ali lahko posredujem več parametrov metodi?Da, lahko definiraš metode, ki sprejemajo več parametrov.

Ali lahko uporabljam funkcije znotraj svojih razredov?Da, metode niso nič drugega kot funkcije, ki so vezane na razred.