Python objektas
An Objektas yra klasės pavyzdys. Klasė yra kaip planas, o egzempliorius yra klasės kopija su tikrosiomis reikšmėmis. Python yra į objektus orientuota programavimo kalba, kuri pabrėžia objektus, ty daugiausia pabrėžia funkcijas. Python objektai iš esmės yra duomenų kintamųjų ir metodų, veikiančių tuos duomenis, inkapsuliacija į vieną objektą.
Pastaba: Daugiau informacijos, Python klasės ir objektai
Python objekto supratimas
Norėdami geriau suprasti objektų sąvoką Python. Panagrinėkime pavyzdį, daugelis iš jūsų žaidė CLASH OF CLANS. Taigi laikykime bazinį išdėstymą kaip klasę, kurioje yra visi pastatai, gynyba, ištekliai ir tt. Remdamiesi šiais aprašymais sukuriame kaimą, čia kaimas yra objektas. Python.
Sintaksė:
obj = MyClass() print(obj.x)
Instancija apibrėžimas reiškia atminties paskirstymą, reikalingą faktiniams kintamųjų duomenims saugoti. Kiekvieną kartą, kai kuriate klasės objektą, sukuriama kiekvieno toje klasėje apibrėžto duomenų kintamojo kopija. Paprasta kalba galime teigti, kad kiekvienas klasės objektas turi savo toje klasėje apibrėžtų duomenų narių kopiją.
Python objekto kūrimas
Programos veikimas: Audi = automobiliai ()
- Krūvoje yra skirtas atminties blokas. Skiriamos atminties dydis nustatomas pagal toje klasėje (automobiliams) turimus atributus ir metodus.
- Po to, kai atminties blokas yra paskirstytas, specialus metodas __karšta__ () vadinamas viduje. Pradiniai duomenys šiuo metodu saugomi kintamuosiuose.
- Objektui (automobiliams) grąžinama egzemplioriaus paskirto atminties adreso vieta.
- Atminties vieta perduodama savarankiškai .
Python3
class> Cars:> > def> __init__(> self> , m, p):> > self> .model> => m> > self> .price> => p> Audi> => Cars(> 'R8'> ,> 100000> )> print> (Audi.model)> print> (Audi.price)> |
Išvestis:
R8 100000
Prieiga prie klasės nario naudojant objektą:
Klasės kintamieji ir metodai pasiekiami naudojant klasės objektus arba egzempliorius Python.
Sintaksė:
obj_name.var_name Audi.model obj_name.method_name() Audi.ShowModel(); obj_name.method_name(parameter_list) Audi.ShowModel(100);
1 pavyzdys:
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())> |
Išvestis:
1000000
2 pavyzdys:
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)> |
Išvestis:
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
Savarankiškas kintamasis:
SELF yra numatytasis kintamasis, kuriame yra dabartinio Python objekto atminties adresas. Egzempliorių kintamieji ir metodai gali būti nurodyti savaiminiu kintamuoju. Kai sukuriamas klasės objektas, objekto atminties vietą sudaro jo objekto pavadinimas. Ši atminties vieta yra perduodama SELF viduje, nes SELF žino objekto atminties adresą, todėl objekto kintamasis ir metodas yra prieinami. Pirmasis bet kurio objekto metodo argumentas yra SELF, nes pirmasis argumentas visada yra objekto nuoroda. Šis procesas vyksta automatiškai, nesvarbu, ar skambinate, ar ne.
Pavyzdys:
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()> |
Išvestis:
Capital of India is: Delhi
Pastaba: Norėdami gauti daugiau informacijos, žr savarankiškai Python klasėje
Objekto ištrynimas Python:
Python Object nuosavybę galima ištrinti naudojant del raktinį žodį:
Sintaksė:
del obj_name.property
objektus taip pat galima ištrinti del raktažodžiu:
Sintaksė:
del obj_name