Johdatus Python-ylikuormitukseen

Ylikuormitus on prosessi, jolla on sama nimi useammalle kuin yhdelle yksikölle (menetelmät, operaattorit jne.), Mutta ne eroavat ominaisuuksistaan. Ominaisuuksien ero voi johtua määritteiden määrän erotuksesta tai ominaisuuksien tyyppierotuksesta. Toisin sanoen kokonaisuuden (menetelmät, operaattorit jne.) Näkökulmasta se voidaan piirtää tai selittää kokonaisuuden kykyä toimia eri tavalla sille syötettyjen parametrien mukaan. Pythonissa, kuten useimmissa muissa korkean tason ohjelmointikielissä, pythonin ylikuormitus voidaan saavuttaa kahdella tavalla tai tapauksissa, ne on lueteltu alla,

  • Toimintojen tai menetelmien ylikuormitus (toiminnon ylikuormitus).
  • Operaattoreiden ylikuormitus (käyttäjän ylikuormitus).

Toiminnon ylikuormitus Pythonissa

Menetelmän ylikuormitus ei ole pythonissa käytetty käsite, mutta se voidaan saavuttaa useilla tekniikoilla. Ensinnäkin menetelmän ylikuormituksen käsite voidaan luokitella kahteen eri käsitteeseen,

  • Käyttäjän määrittämien toimintojen ylikuormitus.
  • Oletustoimintojen ylikuormitus.

1. Käyttäjän määrittämien toimintojen ylikuormitus

Käyttäjän määrittämä toiminnon ylikuormitus voidaan saavuttaa pythonissa asettamalla parametrin tai argumentin arvoksi mitään. Joten jos argumentille ei aseteta mitään, funktio reagoi samalla tavalla, kun arvoa ei välitetä tälle argumentille, ja toisella tavalla, kun arvoa ei välitetä samalle argumentille.

Esimerkki:

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

lähtö:

2. Oletus- tai ennalta määritettyjen toimintojen ylikuormitus

Sisäänrakennettujen toimintojen ylikuormitus käsittää ennalta määritellyn funktion määrittämisen, jonka odotetaan ylikuormittuvan python-luokassa erikoistoimintona. Joten kun ennalta määritetty toiminto julistetaan erityisfunktiona python-luokassa, tulkki käyttää tätä erityistoimintoa ennalta määritetyn puhelun ilmoituksena. Seuraava esimerkki selittää tämän prosessin tarkasti.

Esimerkki:

Tarkastellaan len () -funktiota, jota käytetään esineen pituuden määrittämiseen tässä esimerkissä, alla olevassa esimerkissä esitetään pituusfunktion vakiokäyttö ilman, että ylikuormituksella tarkoitetaan, ja postitetaan vastaava vaikutus.

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

lähtö:

Käytämme nyt menetelmää ylikuormitus len () -toiminnolle samassa koodinpätkässä

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

lähtö:

Voimme selvästi huomata, että normaalin sisäänrakennetun pituuden toiminnallisuuden sijasta käytetään ylikuormitettua erikoistoimintoa __len __ (), joka antaa tulosteen tulostaa kummankin luettelon yhteenlaskettu pituus niiden yksittäisen pituuden sijasta.

Operaattorin ylikuormitus Pythonissa

Tämä tarkoittaa operaattorin laajempaa tulkintaa kuin sen alkuperäistä tarkoitusta. Yleisin esimerkki on lisäysoperaattori '+', jossa sitä voidaan käyttää tavanomaiseen lisäykseen ja myös kahden eri merkkijonon yhdistämiseen.

Esimerkki:

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

lähtö:

Python-ylikuormituksen edut

  • Lisää koodin uudelleenkäytettävyyttä.
  • Lisää koodin selkeyttä.
  • Koodin monimutkaisuus on vähentynyt huomattavasti.

johtopäätös

Ylikuormituksella on tärkeä rooli monissa korkean tason ohjelmointikielissä. Pythonin tapauksessa, vaikka niitä ei tarkoiteta suoraan, niillä on merkittävä rooli koodin toistuvan käytön välttämisessä.

Suositellut artikkelit

Tämä on opas Pythonin ylikuormitukseen. Tässä keskustellaan käyttäjän määrittelemistä ja ennalta määritellyistä toiminnoista, operaattoristaan ​​ja eduistaan. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Python-muuttujat (4 suosituinta tyyppiä)
  2. Ylikuormitus vs. ohittaminen esimerkeillä
  3. Python-tiedostot
  4. Python-toimittajat (6 suositinta)
  5. Esimerkkejä Pythonin sisäänrakennetuista toiminnoista