Objekt Python
An Objekt je primerek razreda. Razred je kot načrt, medtem ko je primerek kopija razreda z dejanskimi vrednostmi. Python je objektno usmerjen programski jezik, ki poudarja objekte, torej predvsem funkcije. Objekti Python so v bistvu inkapsulacija podatkovnih spremenljivk in metod, ki delujejo na te podatke, v eno samo entiteto.
Opomba: Za več informacij, Razredi in objekti Python
Razumevanje predmeta Python
Za boljše razumevanje koncepta objektov v Pythonu. Vzemimo primer, mnogi od vas so igrali CLASH OF CLANS, torej predpostavimo osnovno postavitev kot razred, ki vsebuje vse zgradbe, obrambo, vire itd. Na podlagi teh opisov naredimo vas, tukaj je vas objekt v Python.
Sintaksa:
obj = MyClass() print(obj.x)
Primerek definiranje predstavljajo dodelitev pomnilnika, potrebno za shranjevanje dejanskih podatkov spremenljivk. Vsakič, ko ustvarite objekt razreda, se ustvari kopija vsake podatkovne spremenljivke, definirane v tem razredu. V preprostem jeziku lahko rečemo, da ima vsak objekt razreda svojo kopijo podatkovnih članov, definiranih v tem razredu.
Ustvarjanje predmeta Python
Delovanje programa: Audi = Avtomobili()
- Blok pomnilnika je dodeljen kopici. O velikosti dodeljenega pomnilnika odločajo atributi in metode, ki so na voljo v tem razredu (Avtomobili).
- Ko je pomnilniški blok dodeljen, posebna metoda __vroče__ () se kliče interno. S to metodo se začetni podatki shranijo v spremenljivke.
- Lokacija dodeljenega pomnilniškega naslova instance se vrne objektu (Cars).
- Pomnilniška lokacija se posreduje sebe .
Python3
class> Cars:> > def> __init__(> self> , m, p):> > self> .model> => m> > self> .price> => p> Audi> => Cars(> 'R8'> ,> 100000> )> print> (Audi.model)> print> (Audi.price)> |
Izhod:
R8 100000
Dostop do člana razreda z uporabo predmeta:
Spremenljivke in metode razreda so dostopne z uporabo predmetov razreda ali primerkov v Pythonu.
Sintaksa:
obj_name.var_name Audi.model obj_name.method_name() Audi.ShowModel(); obj_name.method_name(parameter_list) Audi.ShowModel(100);
Primer 1:
Python3
# Python program to create instance> # variables inside methods> > class> Car:> > > # Class Variable> > vehicle> => 'car'> > > # The init method or constructor> > def> __init__(> self> , model):> > > # Instance Variable> > self> .model> => model> > > # Adds an instance variable> > def> setprice(> self> , price):> > self> .price> => price> > > # Retrieves instance variable> > def> getprice(> self> ):> > return> self> .price> > # Driver Code> Audi> => Car(> 'R8'> )> Audi.setprice(> 1000000> )> print> (Audi.getprice())> |
Izhod:
1000000
Primer 2:
Python3
class> Car:> > > # Class Variable> > vehicle> => 'Car'> > > # The init method or constructor> > def> __init__(> self> , model, price):> > > # Instance Variable> > self> .model> => model> > self> .price> => price> > # Objects of class> Audi> => Car(> 'R8'> ,> 100000> )> BMW> => Car(> 'I8'> ,> 10000000> )> print> (> 'Audi details:'> )> print> (> 'Audi is a'> , Audi.vehicle)> print> (> 'Model: '> , Audi.model)> print> (> 'price: '> , Audi.price)> print> (> '
BMW details:'> )> print> (> 'BMW is a'> , BMW.vehicle)> print> (> 'Model: '> , BMW.model)> print> (> 'Color: '> , BMW.price)> # Class variables can be> # accessed using class> # name also> print> (> '
Accessing class variable using class name'> )> print> (Car.vehicle)> # or> print> (Audi.vehicle)> # or> print> (BMW.vehicle)> |
Izhod:
Audi details: Audi is a Car Model: R8 price: 100000 BMW details: BMW is a Car Model: I8 Color: 10000000 Accessing class variable using class name Car Car Car
Self Variable:
SELF je privzeta spremenljivka, ki vsebuje naslov pomnilnika trenutnega predmeta v Pythonu. Na spremenljivke in metode primerkov se lahko sklicuje samospremenljivka. Ko je predmet razreda ustvarjen, je pomnilniška lokacija predmeta vsebovana v njegovem imenu objekta. Ta pomnilniška lokacija se interno posreduje SELF-u, saj SELF pozna pomnilniški naslov objekta, zato sta spremenljivka in metoda objekta dostopni. Prvi argument katere koli metode objekta je SELF, ker je prvi argument vedno sklic na objekt. Ta postopek poteka samodejno, ne glede na to, ali ga pokličete ali ne.
primer:
Python3
class> Test:> > def> __init__(Myobject, a, b):> > Myobject.country> => a> > Myobject.capital> => b> > def> myfunc(abc):> > print> (> 'Capital of '> +> abc.country> +> ' is:'> +> abc.capital)> x> => Test(> 'India'> ,> 'Delhi'> )> x.myfunc()> |
Izhod:
Capital of India is: Delhi
Opomba: Za več informacij glejte self v razredu Python
Brisanje predmeta v Pythonu:
Lastnost predmeta Python lahko izbrišete s ključno besedo del:
Sintaksa:
del obj_name.property
predmete je mogoče izbrisati tudi s ključno besedo del:
Sintaksa:
del obj_name