Introducere în suprasarcina Python

Supraîncărcarea este procesul de a avea același nume pentru mai multe entități (metode, operatori etc.), dar diferă prin atributele lor. Diferența de atribute se poate datora unei diferențe de numărare a atributelor sau diferenței de tip de atribute. Cu alte cuvinte din perspectiva entității (metode, operatori, etc.), poate fi redactat sau explicat ca capacitatea unei entități de a se comporta diferit în funcție de parametrii alimentați. La fel ca majoritatea celorlalte limbaje de programare la nivel înalt, supraîncărcarea python poate fi realizată în două moduri sau instanțe, acestea sunt enumerate mai jos,

  • Supraîncărcarea funcțiilor sau a metodelor (Supraîncărcare funcțională).
  • Supraîncărcarea operatorilor (suprasarcina operatorului).

Supraîncărcarea funcției în Python

Supraîncărcarea metodei nu este un concept aplicat în python, dar poate fi realizată prin mai multe tehnici. În primul rând, conceptul de supraîncărcare a metodei poate fi clasificat în două concepte diferite,

  • Supraîncărcarea funcțiilor definite de utilizator.
  • Supraîncărcarea funcțiilor implicite.

1. Supraîncărcarea funcțiilor definite de utilizator

Supraîncărcarea funcției definită de utilizator poate fi realizată în python prin setarea unui parametru sau a unei argumente ca niciuna. Deci, dacă un argument este setat ca unul, funcția reacționează într-o singură manieră atunci când o valoare nu este trecută pentru acest argument și într-un mod diferit atunci când o valoare nu este trecută pentru același argument.

Exemplu:

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

ieşire:

2. Supraîncărcarea funcțiilor implicite sau predefinite

Funcțiile încărcate încărcate implică definirea funcției predefinite care este de așteptat să fie supraîncărcată în clasa python ca funcție specială. Deci, atunci când funcția predefinită este declarată ca o funcție specială în clasa python, atunci interpretul va utiliza această funcție specială ca declarație pentru apelul predefinit. Exemplul de mai jos explică cu exactitate acest proces.

Exemplu:

să luăm în considerare funcția len () care este utilizată pentru determinarea lungimii unui articol pentru acest exemplu, exemplul de mai jos arată utilizarea standard a funcției de lungime fără a implica supraîncărcare și postează impactul corespunzător.

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

ieşire:

Acum să folosim supraîncărcarea metodei pentru funcția len () din același fragment de cod

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

ieşire:

Putem observa clar, în loc să utilizăm funcționalitatea obișnuită a lungimii încorporate, se utilizează funcția specială supraîncărcată __len __ () care face ca ieșirea să imprime lungimea rezumată a ambelor liste în locul lungimii lor individuale.

Supraîncărcarea operatorului în Python

Aceasta implică o interpretare extinsă a unui operator mai mult decât scopul inițial. Cel mai obișnuit exemplu este operatorul de adăugare '+' unde poate fi utilizat pentru adăugarea obișnuită și, de asemenea, pentru unirea a două șiruri diferite.

Exemplu:

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

ieşire:

Avantajele supraîncărcării Python

  • Crește reutilizarea codului.
  • Crește claritatea codului.
  • Complexitatea implicată în cod este mult redusă.

Concluzie

Supraîncărcarea joacă un rol esențial în multe limbaje de programare la nivel înalt. În cazul pitonului, deși nu sunt implicate direct, dețin un rol semnificativ în evitarea utilizării repetitive a codului.

Articole recomandate

Acesta este un ghid pentru supraîncărcare Python. Aici vom discuta despre funcțiile definite de utilizator și predefinite împreună cu operatorul și avantajele acestuia. De asemenea, puteți consulta următoarele articole pentru a afla mai multe-

  1. Variabile Python (Top 4 tipuri)
  2. Supraîncărcare față de suprasolicitare cu exemple
  3. Python File Operations
  4. Python Editors (Top 6 Editors)
  5. Exemple de funcții Python încorporate