Vad är metodöverbelastning i Python och hur det fungerar?



Den här artikeln förklarar vad som är metodöverbelastning i python och hur det fungerar. Det finns två olika exempel för att förklara metoden på djupet.

Två metoder kan inte ha samma namn i . Metodöverbelastning i Python är en funktion som gör att samma operatör kan ha olika betydelser. I den här artikeln kommer vi att titta på funktionen för överbelastning av metoder i Python och hur den används föröverbelastning av metoderna, i följande ordning:

Vad är överbelastning?

Överbelastning är en funktions eller operatörs förmåga att bete sig på olika sätt baserat på parametrarna som skickas till , eller de operander som operatören agerar på.





Några av fördelar att använda överbelastning är:

  • Överbelastning av en metod främjar återanvändbarhet. Till exempel, istället för att skriva flera metoder som skiljer sig bara något, kan vi skriva en metod och överbelasta den.



  • Överbelastning förbättrar också kodens tydlighet och eliminerar komplexitet.

    tät koppling vs lös koppling

Överbelastning är ett mycket användbart koncept. Det har dock ett antal nackdelar associerad med det.

  • Överbelastning kan skapa förvirring när den används över gränser. När det används för mycket blir det besvärligt att hantera överbelastade funktioner.



Metodöverbelastning i Python

I Python kan du skapa en metod som kan anropas på olika sätt. Så du kan ha en metod som har noll, en eller flera parametrar. Beroende på metoddefinitionen kan vi kalla det med noll, ett eller flera argument.

Med en enda metod eller funktion kan antalet parametrar anges av dig. Denna process för att anropa samma metod på olika sätt kallas metodöverbelastning.

Exempel på metod för överbelastning

Nu när du vet vad som är metodöverbelastning i Python, låt oss ta ett exempel. Här skapar vi en klass med en Hej() . Den första parametern för denna metod är inställd på Ingen. Detta ger oss möjlighet att ringa det med eller utan en parameter.

Ett objekt skapas också baserat på klassen och vi kommer att kalla dess metod med noll och en parameter.

Exempel 1:

#! / usr / bin / env pythonklass Person: def Hej (själv, namn = Ingen): om namnet inte är Ingen: skriv ut ('Hej' + namn) annat: skriv ut ('Hej') # Skapa instans obj = Person () # Ring metoden obj.Hello () # Ring metoden med en parameter obj.Hello ('Edureka')

Produktion:

Hej Hej Edureka

För att klargöra metodöverbelastning kan vi nu kalla metoden Hello () på två sätt:

obj.Hello () obj.Hello ('Edureka')

I exemplet ovan har vi skapat en metod som kan kallas med färre argument än vad den definieras för att tillåta. Det är inte heller begränsat till två variabler och din metod kan ha fler variabler som är valfria.

Låt oss ta en till exempel att förstå metodöverbelastning i .

Exempel 2:

I följande exempel kommer vi att överbelasta områdesmetoden. Om det inte finns något argument returnerar det 0. Och om vi har ett argument returnerar det kvadratet av värdet och antar att du beräknar arean av en kvadrat. Om vi ​​har två argument returnerar den också produkten av de två värdena och antar att du beräknar området för en rektangel.

# klassklass Beräkna: # areametod def area (self, x = None, y = None): if x! = None och y! = None: return x * y elif x! = None: return x * x else: return 0 # object obj = Beräkna () # zero argument print ('Area Value:', obj.area ()) # one argument print ('Area Value:', obj.area (4)) # two argument print ('Area Värde: ', obj. Område (3, 5))

Ovanstående kod ger oss följande produktion:

Områdesvärde: 0 Områdesvärde: 16 Områdesvärde: 15

Med detta har vi kommit till slutet av vår artikel. Jag hoppas att du förstod vad som är metodöverbelastning i python och hur det fungerar.

För att få fördjupad kunskap om python tillsammans med dess olika applikationer kan du registrera dig för live av Edureka med 24/7 support och livstidsåtkomst.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna 'Metodöverbelastning i Python' -bloggen så kommer vi tillbaka till dig så snart som möjligt.

sortera array c ++ fallande