Dvě metody nemohou mít stejný název v . Přetížení metody v Pythonu je funkce, která umožňuje stejnému operátorovi mít různé významy. V tomto článku se podíváme na funkci přetížení metody v Pythonu a na to, jak se používápřetížení metod v následujícím pořadí:
Co je přetížení?
Přetížení je schopnost funkce nebo operátora chovat se různými způsoby na základě parametrů, které jsou předány do , nebo operandy, na které operátor působí.
Některé z výhody použití přetížení jsou:
Přetížení metody podporuje opětovné použití. Například namísto psaní více metod, které se liší jen nepatrně, můžeme napsat jednu metodu a přetížit ji.
Přetížení také zlepšuje srozumitelnost kódu a eliminuje složitost.
Přetížení je velmi užitečný koncept. Má však řadu nevýhody spojené s tím.
Přetížení může při použití napříč způsobit zmatek hranice. Při nadměrném používání se stává obtížné spravovat přetížené funkce.
Přetížení metody v Pythonu
V Pythonu můžete vytvořit metodu, kterou lze volat různými způsoby. Můžete tedy mít metodu, která má nulový, jeden nebo více parametrů. V závislosti na definici metody ji můžeme nazvat nulou, jedním nebo více argumenty.
Vzhledem k jediné metodě nebo funkci můžete zadat počet parametrů. Tento proces volání stejné metody různými způsoby se nazývá přetížení metody.
co je virtuální funkce v Javě
Příklady přetížení metody
Nyní, když víte, co je přetížení metody v Pythonu, pojďme si vzít příklad. Zde vytvoříme třídu s jednou Ahoj() . První parametr této metody je nastaven na None. To nám dá možnost jej volat s parametrem nebo bez něj.
Objekt je také vytvořen na základě třídy a jeho metodu budeme volat pomocí nuly a jednoho parametru.
Příklad 1:
#! / usr / bin / env python class Osoba: def Hello (self, name = None): if name is not None: print ('Hello' + name) else: print ('Hello') # Create instance obj = Person () # Volání metody obj.Hello () # Volání metody s parametrem obj.Hello ('Edureka')
Výstup:
Ahoj Ahoj Edureko
Abychom objasnili přetížení metody, můžeme nyní volat metodu Hello () dvěma způsoby:
obj.Hello () obj.Hello ('Edureka')
Ve výše uvedeném příkladu jsme vytvořili metodu, kterou lze volat s menším počtem argumentů, než kolik je definováno pro povolení. Není to omezeno na dva proměnné a vaše metoda může mít více proměnných, které jsou volitelné.
Nyní si vezmeme další příklad pochopit přetížení metody .
Příklad 2:
V následujícím příkladu přetížíme metodu oblasti. Pokud není argument, vrátí 0. Pokud máme jeden argument, vrátí druhou mocninu hodnoty a předpokládá, že počítáte plochu čtverce. Také, pokud máme dva argumenty, vrátí produkt dvou hodnot a předpokládá, že počítáte oblast obdélníku.
# class class Compute: # area method def area (self, x = None, y = None): if x! = None and y! = None: return x * y elif x! = None: return x * x else: return 0 # object obj = Compute () # zero argument print ('Area Value:', obj.area ()) # one argument print ('Area Value:', obj.area (4)) # two argument print ('Area Hodnota: ', obj. Oblast (3, 5))
Výše uvedený kód nám poskytne následující výstup:
Hodnota oblasti: 0 Hodnota oblasti: 16 Hodnota oblasti: 15
Tím jsme se dostali na konec našeho článku. Doufám, že jste pochopili, co je přetížení metody v pythonu a jak to funguje.
Chcete-li získat podrobné znalosti o pythonu a jeho různých aplikacích, můžete se zaregistrovat naživo od společnosti Edureka s nepřetržitou podporou a doživotním přístupem.
Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto blogu „Přetížení metody v Pythonu“ a my se vám ozveme co nejdříve.