Introduksjon til Python Overloading

Overbelastning er prosessen med å ha samme navn for mer enn én enhet (metoder, operatører, osv.), Men de avviker fra deres attributter. Forskjellen i attributter kan skyldes en forskjell i en telling av attributtene eller forskjellen i typen attributter. Med andre ord fra enhetens (metodene, operatørene, osv.) Perspektivet, kan det utarbeides eller forklares som en enhets evne til å oppføre seg annerledes i henhold til parametrene som blir matet til den. I python som i de fleste andre programmeringsspråk på høyt nivå, kan overbelastningen av python oppnås på to måter eller tilfeller, de er listet opp nedenfor,

  • Overbelastning av funksjoner eller metoder (Funksjon Overbelastning).
  • Overbelastning av operatører (Operator Overloading).

Funksjon Overbelastning i Python

Overbelastning av metoder er ikke et anvendt konsept i python, men det kan oppnås gjennom flere teknikker. Først av alt begrepet metodebelastning kan klassifiseres i to forskjellige konsepter,

  • Overbelastning av brukerdefinerte funksjoner.
  • Overbelastning av standardfunksjoner.

1. Overbelastning av brukerdefinerte funksjoner

Brukerdefinert overbelastning av funksjoner kan oppnås i python ved å sette en parameter eller argumentverdi som ingen. Så hvis et argument er satt som ingen, reagerer funksjonen på en måte når en verdi ikke sendes for dette argumentet, og på en annen måte når en verdi ikke sendes for det samme argumentet.

Eksempel:

#!/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)

Produksjon:

2. Overbelastning av standard- eller forhåndsdefinerte funksjoner

Overbelastning innebygde funksjoner innebærer å definere den forhåndsdefinerte funksjonen som forventes å bli overbelastet i pythonklassen som en spesiell funksjon. Så når den forhåndsdefinerte funksjonen er erklært som en spesiell funksjon i pytonklassen, vil tolken bruke denne spesialfunksjonen som erklæring for det forhåndsdefinerte anropet. Eksemplet nedenfor forklarer denne prosessen nøyaktig.

Eksempel:

la oss vurdere len () -funksjonen som brukes til å bestemme lengden på en gjenstand for dette eksempelet. Eksemplet nedenfor viser standard bruk av lengdefunksjonen uten å implisere overbelastning og legge ut tilsvarende belastning.

# 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))

Produksjon:

La oss nå bruke metodeoverbelastning for len () -funksjonen i samme kodebit

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))

Produksjon:

Vi kan tydelig merke i stedet for å bruke vanlig innebygd lengde-funksjonalitet, den overbelastede spesialfunksjonen __len __ () brukes som gjør at utskriften skal skrive ut den summerte lengden på begge listene i stedet for deres individuelle lengde.

Operatør overbelastning i Python

Dette innebærer en utvidet tolkning av en operatør mer enn dens opprinnelige formål. Det vanligste eksemplet er tilleggsoperatøren '+' der den kan brukes til vanlig tillegg og også for å sammenføye to forskjellige strenger.

Eksempel:

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

Produksjon:

Fordeler med Python-overbelastning

  • Øker gjenbruk av kode.
  • Øker klarhet i koden.
  • Kompleksiteten involvert i koden er kraftig redusert.

Konklusjon

Overbelastning spiller en viktig rolle i mange programmeringsspråk på høyt nivå. I tilfelle av python, selv om de ikke impliseres direkte, har de en betydelig rolle i å unngå gjentagende bruk av kode.

Anbefalte artikler

Dette er en guide til Python Overloading. Her diskuterer vi de brukerdefinerte og forhåndsdefinerte funksjonene sammen med operatøren og fordelene. Du kan også se på følgende artikler for å lære mer-

  1. Python-variabler (Topp 4 typer)
  2. Overbelastning vs overstyring med eksempler
  3. Python-filoperasjoner
  4. Python Editors (Topp 6 redaktører)
  5. Eksempler på innebygde Python-funksjoner