Introduktion till Python-överbelastning

Överbelastning är processen att ha samma namn för mer än en enhet (metoder, operatörer osv.) Men de skiljer sig åt efter deras attribut. Skillnaden i attribut kan bero på en skillnad i ett antal av attributen eller skillnaden i typen av attribut. Med andra ord från enhetens (metoder, operatörer osv.) Perspektiv kan det utarbetas eller förklaras som en enhets förmåga att bete sig annorlunda beroende på de parametrar som matas till den. I python som i likhet med de flesta andra programmeringsspråk på hög nivå kan överbelastningen av python uppnås på två sätt eller i fall, de listas nedan,

  • Överbelastning av funktioner eller metoder (Funktion överbelastning).
  • Överbelastning av operatörer (Operatör överbelastning).

Funktion Överbelastning i Python

Metodöverbelastning är inte ett tillämpat koncept i python men det kan uppnås genom flera tekniker. Först och främst kan begreppet överbelastning av metoder klassificeras i två olika koncept,

  • Överbelastning av användardefinierade funktioner.
  • Överbelastning av standardfunktioner.

1. Överbelastning av användardefinierade funktioner

Användardefinierad överbelastning av funktioner kan uppnås i python genom att ställa in ett parameter- eller argumentvärde som inget. Så om ett argument ställs in som inget reagerar funktionen på ett sätt när ett värde inte skickas för detta argument och på ett annat sätt när ett värde inte skickas för samma argument.

Exempel:

#!/usr/bin/env python
class Overloading_test:
def overloading_function(self, argument1 = 0, argument2 = 0 ):
if argument1 is not None or argument2 is not None:
print('Method Overloading parameter count :', (int( argument1) + int(argument2)))
else:
print( ' Method Overloading without parameters ' )
# Create instance
object1 = Overloading_test()
# Call the method with no arguments
object1.overloading_function()
# Call the method with 1 argument
object1.overloading_function(1)
# Call the method with 2 argument
object1.overloading_function(1, 1)

Produktion:

2. Överbelastning av standard- eller fördefinierade funktioner

Överbelastning av inbyggda funktioner innebär att definiera den fördefinierade funktionen som förväntas överbelastas i pythonklassen som en speciell funktion. Så när den fördefinierade funktionen deklareras som en speciell funktion i pytonklassen, kommer tolkaren att använda denna specialfunktion som deklaration för det fördefinierade samtalet. Nedanstående exempel förklarar denna process exakt.

Exempel:

låt oss överväga funktionen len () som används för att bestämma längden på ett objekt för detta exempel, exemplet nedan visar standardanvändning av längdfunktionen utan att implicera överbelastning och lägga motsvarande påverkan.

# Using len() function without method overloading
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
print(' Total count of Alphabets in list1 : ', len(Lower_Case))
print(' Total count of Alphabets in list2 : ', len(Upper_Case))

Produktion:

Låt oss nu använda metodöverbelastning för len () -funktionen i samma kodavsnitt

class overloading:
def __init__(self, argument1, argument2):
self.argument1 = argument1
self.argument2 = argument2
def __len__(self):
return argument1+argument2
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) print(' Collection used for List1 : ', type(Lower_Case))
print(' Collection used for list2 : ', type(Upper_Case))
argument1 = len(Lower_Case)
argument2 = len(Upper_Case)
# Using len() function without method overloading
Object1 = overloading(argument1, argument2)
print('Overall length of both the lists : ', len(Object1))

Produktion:

Vi kan tydligt märka istället för att använda den vanliga inbyggda längdfunktionaliteten den överbelastade specialfunktionen __len __ () som gör att utskriften skriver ut den summerade längden på båda listorna istället för deras individuella längd.

Operatör överbelastning i Python

Detta innebär en utökad tolkning av en operatör mer än dess ursprungliga syfte. Det vanligaste exemplet är tilläggsoperatören '+' där den kan användas för vanligt tillägg och även för att sammanfoga två olika strängar.

Exempel:

# add two numbers
print(1 + 2)
# concatenate two strings
print("Hello"+"World")

Produktion:

Fördelar med Python-överbelastning

  • Ökar återanvändbarhet för kod.
  • Ökar tydligheten i koden.
  • Komplexiteten i koden är väsentligt minskad.

Slutsats

Överbelastning spelar en viktig roll i många högspråkiga programmeringsspråk. När det gäller python, även om de inte impliceras direkt, har de en betydande roll för att undvika repetitiv användning av kod.

Rekommenderade artiklar

Detta är en guide till överbelastning av Python. Här diskuterar vi de användardefinierade och fördefinierade funktionerna tillsammans med dess operatör och fördelar. Du kan också titta på följande artiklar för att lära dig mer-

  1. Pythonvariabler (Topp 4 typer)
  2. Överbelastning kontra övervägande med exempel
  3. Python-filoperationer
  4. Python Editors (Topp 6 redaktörer)
  5. Exempel på inbyggda Python-funktioner

Kategori: