Objekt Python
An Objekt je instancí třídy. Třída je jako plán, zatímco instance je kopií třídy se skutečnými hodnotami. Python je objektově orientovaný programovací jazyk, který klade důraz na objekty, tj. klade především důraz na funkce. Objekty Pythonu jsou v podstatě zapouzdřením datových proměnných a metod působících na tato data do jediné entity.
Poznámka: Pro více informací, Třídy a objekty Pythonu
Pochopení objektu Python
Pro lepší pochopení konceptu objektů v Pythonu. Vezměme si příklad, mnozí z vás hráli CLASH OF CLANS. Předpokládejme tedy základní rozložení jako třídu, která obsahuje všechny budovy, obranu, zdroje atd. Na základě těchto popisů vytvoříme vesnici, zde je vesnice objektem Krajta.
Syntax:
obj = MyClass() print(obj.x)
Instance definující představují alokaci paměti nutnou pro uložení aktuálních dat proměnných. Pokaždé, když vytvoříte objekt třídy, vytvoří se kopie každé datové proměnné definované v této třídě. V jednoduchém jazyce můžeme konstatovat, že každý objekt třídy má svou vlastní kopii datových členů definovaných v dané třídě.
Vytvoření objektu Python
Fungování programu: Audi = Auta()
- Na haldě je přidělen blok paměti. O velikosti přidělené paměti rozhodují atributy a metody dostupné v dané třídě (Cars).
- Po přidělení paměťového bloku speciální metoda __horký__ () se nazývá interně. Pomocí této metody se do proměnných ukládají počáteční data.
- Umístění adresy přidělené paměti instance je vráceno objektu (Cars).
- Místo v paměti je předáno já .
Python3
class> Cars:> > def> __init__(> self> , m, p):> > self> .model> => m> > self> .price> => p> Audi> => Cars(> 'R8'> ,> 100000> )> print> (Audi.model)> print> (Audi.price)> |
Výstup:
R8 100000
Přístup k členům třídy pomocí objektu:
Proměnné a metody třídy jsou přístupné pomocí objektů třídy nebo instancí v Pythonu.
Syntax:
obj_name.var_name Audi.model obj_name.method_name() Audi.ShowModel(); obj_name.method_name(parameter_list) Audi.ShowModel(100);
Příklad 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())> |
Výstup:
1000000
Příklad 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)> |
Výstup:
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
Vlastní proměnná:
SELF je výchozí proměnná, která obsahuje paměťovou adresu aktuálního objektu v Pythonu. Na proměnné instance a metody lze odkazovat pomocí vlastní proměnné. Když je vytvořen objekt třídy, paměťové umístění objektu je obsaženo v jeho názvu objektu. Toto paměťové místo je předáno SELF interně, protože SELF zná paměťovou adresu objektu, takže proměnná a metoda objektu jsou přístupné. První argument jakékoli objektové metody je SELF, protože první argument je vždy odkaz na objekt. Tento proces probíhá automaticky, ať už to zavoláte nebo ne.
Příklad:
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()> |
Výstup:
Capital of India is: Delhi
Poznámka: Další informace viz sebe ve třídě Python
Odstranění objektu v Pythonu:
Vlastnost objektu Python lze odstranit pomocí klíčového slova del:
Syntax:
del obj_name.property
objekty lze také odstranit klíčovým slovem del:
Syntax:
del obj_name