Co je přetížení metody v Pythonu a jak to funguje?



Tento článek vysvětluje, co je přetížení metody v pythonu a jak to funguje. Existují dva různé příklady, které vysvětlují metodu do hloubky.

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.