Sissejuhatus Pythoni ülekoormamisse

Ülekoormamine on protsess, mille käigus saadakse enam kui ühe olemi (meetodid, operaatorid jne) jaoks sama nimi, kuid need erinevad atribuutide järgi. Atribuutide erinevus võib olla tingitud atribuutide arvu erinevusest või atribuutide tüübi erinevusest. Teisisõnu (olemi (meetodid, operaatorid jne)) vaatenurgast võib selle koostada või seletada kui üksuse võimet käituda erinevalt vastavalt talle pakutavatele parameetritele. Nagu python, nagu enamiku teiste kõrgetasemeliste programmeerimiskeelte puhul, võib python ülekoormamise saavutada kahel viisil või juhul, kui need on loetletud allpool,

  • Funktsioonide või meetodite ülekoormamine (Function Overloading).
  • Operaatorite ülekoormus (operaatori ülekoormus).

Funktsiooni ülekoormamine Pythonis

Meetodi ülekoormamine ei ole pythonis kasutatav mõiste, kuid selle võib saavutada mitme tehnika abil. Esiteks võib meetodi ülekoormamise kontseptsiooni jagada kahte erinevasse mõistesse,

  • Kasutaja määratletud funktsioonide ülekoormamine.
  • Vaikefunktsioonide ülekoormamine.

1. Kasutaja määratletud funktsioonide ülekoormamine

Kasutaja määratletud funktsiooni ülekoormamise saab pythonis saavutada, kui parameetri või argumendi väärtus on seadistatud kui ükski. Nii et kui argumendiks on seatud ükski, reageerib funktsioon ühel viisil, kui selle argumendi jaoks väärtust ei edastata, ja teisel viisil, kui sama argumendi jaoks väärtust ei edastata.

Näide:

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

Väljund:

2. Vaike- või eelmääratud funktsioonide ülelaadimine

Sisseehitatud funktsioonide ülekoormamine hõlmab eelnevalt määratletud funktsiooni määratlemist, mis eeldatavasti on python-klassis erifunktsioonina ülekoormatud. Nii et kui eelnevalt määratletud funktsioon kuulutatakse python-klassi erifunktsiooniks, kasutab tõlk seda erifunktsiooni eelnevalt määratletud kõne deklaratsioonina. Allpool toodud näide selgitab seda protsessi täpselt.

Näide:

Vaatleme funktsiooni len (), mida kasutatakse antud näite puhul üksuse pikkuse määramiseks, allpool toodud näide näitab pikkuse funktsiooni standardset kasutamist ilma liigset koormamist põhjustamata ja postitab vastava löögi.

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

Väljund:

Kasutagem nüüd sama koodilõigu funktsiooni len () jaoks ülekoormamise meetodit

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

Väljund:

Tavalise sisseehitatud pikkuse funktsionaalsuse asemel võime selgelt märgata, et kasutatakse ülekoormatud erifunktsiooni __len __ (), mille tulemusel trükitakse mõlema loendi summaarne pikkus nende individuaalse pikkuse asemel.

Operaatori ülekoormus Pythonis

See hõlmab operaatori laiendatud tõlgendamist, mitte selle algset eesmärki. Kõige tavalisem näide on liitmisoperaator "+", kus seda saab kasutada tavaliseks lisamiseks ja ka kahe erineva stringi ühendamiseks.

Näide:

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

Väljund:

Pythoni ülekoormamise eelised

  • Suurendab koodi korduvkasutatavust.
  • Suurendab koodi selgust.
  • Koodiga seotud keerukus on tunduvalt vähenenud.

Järeldus

Ülekoormusel on paljudes kõrgetasemelistes programmeerimiskeeltes ülioluline roll. Ehkki pythoni puhul seda otseselt ei vihjata, omab see olulist rolli koodi korduva kasutamise vältimisel.

Soovitatavad artiklid

See on juhend Pythoni ülekoormamise kohta. Siin käsitleme kasutaja määratletud ja eelnevalt määratletud funktsioone koos operaatori ja eelistega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Pythoni muutujad (4 parimat tüüpi)
  2. Näidetega ülekoormamine vs alistamine
  3. Pythoni failioperatsioonid
  4. Pythoni toimetajad (6 parimat redigeerijat)
  5. Näited Pythoni sisseehitatud funktsioonidest

Kategooria: