Třídy a objekty Pythonu
Třídy/objekty Pythonu
Python je objektově orientovaný programovací jazyk.
Téměř vše v Pythonu je objekt se svými vlastnostmi a metodami.
Třída je jako konstruktor objektů nebo "návrh" pro vytváření objektů.
Vytvořte třídu
Chcete-li vytvořit třídu, použijte klíčové slovo class
:
Příklad
Vytvořte třídu s názvem MyClass s vlastností nazvanou x:
class MyClass:
x = 5
Vytvořit objekt
Nyní můžeme použít třídu s názvem MyClass k vytvoření objektů:
Příklad
Vytvořte objekt s názvem p1 a vytiskněte hodnotu x:
p1 = MyClass()
print(p1.x)
Funkce __init__().
Výše uvedené příklady jsou třídy a objekty v jejich nejjednodušší formě a nejsou skutečně užitečné v aplikacích v reálném životě.
Abychom pochopili význam tříd, musíme porozumět vestavěné funkci __init__().
Všechny třídy mají funkci nazvanou __init__(), která se vždy spustí, když je třída iniciována.
Pomocí funkce __init__() můžete přiřadit hodnoty vlastnostem objektu nebo jiné operace, které je nutné provést při vytváření objektu:
Příklad
Vytvořte třídu s názvem Osoba, pomocí funkce __init__() přiřaďte hodnoty pro jméno a věk:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1.name)
print(p1.age)
Poznámka: Funkce __init__()
je volána automaticky pokaždé, když je třída použita k vytvoření nového objektu.
Objektové metody
Objekty mohou také obsahovat metody. Metody v objektech jsou funkce, které patří objektu.
Vytvořme metodu ve třídě Person:
Příklad
Vložte funkci, která vytiskne pozdrav, a spusťte ji na objektu p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John",
36)
p1.myfunc()
Poznámka: Parametr self
je odkazem na aktuální instanci třídy a používá se pro přístup k proměnným, které patří do třídy.
Vlastní parametr
Parametr self
je odkaz na aktuální instanci třídy a používá se pro přístup k proměnným, které patří do třídy.
Nemusí se jmenovat self
, můžete to nazvat, jak chcete, ale musí to být první parametr jakékoli funkce ve třídě:
Příklad
Použijte slova mysillyobject a abc místo sebe :
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John",
36)
p1.myfunc()
Upravit vlastnosti objektu
Vlastnosti objektů můžete upravit takto:
Příklad
Nastavte věk p1 na 40:
p1.age = 40
Odstranit vlastnosti objektu
Vlastnosti objektů můžete odstranit pomocí
del
klíčového slova:
Příklad
Odstraňte vlastnost age z objektu p1:
del p1.age
Smazat objekty
Objekty můžete odstranit pomocí del
klíčového slova:
Příklad
Smazat objekt p1:
del p1
Prohlášení o průjezdu
class
definice nemohou být prázdné, ale pokud z nějakého důvodu máte class
definici bez obsahu, vložte ji do pass
příkazu, aby nedošlo k chybě.
Příklad
class Person:
pass