Увод у Питхон преоптерећење

Преоптерећење је процес добијања истог имена за више ентитета (методе, оператори, итд.), Али се разликују по атрибутима. Разлика у атрибутима може бити последица разлике у броју атрибута или разлике у типу атрибута. Другим ријечима, из перспективе ентитета (методе, оператори, итд.), То се може израдити или објаснити као способност субјекта да се понаша другачије у складу са параметрима који му се хране. У питхон-у, као и у већини других програмских језика високог нивоа, преоптерећење питхоном може се постићи на два начина или у случајевима, они су наведени у наставку,

  • Преоптерећење функција или метода (преоптерећење функције).
  • Преоптерећење оператора (преоптерећење оператора).

Функција Преоптерећење у Питхон-у

Преоптерећење метода није примењени концепт у питхону, али се може постићи неколико техника. Пре свега, концепт преоптерећења може се класификовати у два различита концепта,

  • Преоптерећење кориснички дефинисаних функција.
  • Преоптерећење задатих функција.

1. Преоптерећење кориснички дефинисаних функција

Преоптерећење које дефинира корисник може се постићи у питхону постављањем параметара или вриједности аргумента као ниједног. Дакле, ако је аргумент постављен као ниједан, функција реагира на један начин када се вриједност за тај аргумент не просљеђује и на другачији начин када вриједност није дата за исти аргумент.

Пример:

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

Излаз:

2. Преоптерећење подразумеваних или унапред дефинисаних функција

Преоптерећење уграђених функција укључује дефинисање унапред дефинисане функције за коју се очекује да ће бити преоптерећена у класи питона као посебне функције. Дакле, када је унапред дефинисана функција декларирана као посебна функција у питхон класи, интерпретер ће користити ову специјалну функцију као декларацију за унапред дефинисани позив. Следећи пример прецизно објашњава овај поступак.

Пример:

размотримо функцију лен () која се користи за одређивање дужине предмета у овом примеру, доњи пример приказује стандардну употребу функције дужине без имплицирања преоптерећења и поставља одговарајући утицај.

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

Излаз:

Сада ћемо користити преоптерећење метода за функцију лен () у истом исјечку кода

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

Излаз:

Јасно можемо приметити уместо кориштења уобичајене функције уграђене дужине, користи се преоптерећена посебна функција __лен __ (), која омогућава испис сумиране дужине обе листе уместо њихове појединачне дужине.

Преоптерећење оператора у Питхон-у

Ово укључује проширено тумачење оператера више од његове првобитне сврхе. Најчешћи пример је оператер сабирања '+' где се може користити за уобичајено сабирање и за спајање две различите струне.

Пример:

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

Излаз:

Предности Питхон преоптерећења

  • Повећава поновну употребу кода.
  • Повећава јасноћу кода.
  • Сложеност кодекса увелико је смањена.

Закључак

Преоптерећење игра виталну улогу у многим програмским језицима високог нивоа. У случају питона, иако се не имплицира директно, они играју значајну улогу у избегавању понављања коришћења кода.

Препоручени чланци

Ово је водич за Питхон Оверлоадинг. Овдје смо расправљали о корисничким дефинираним и унапријед дефинираним функцијама, заједно с његовим оператором и предностима. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Питхон променљиве (топ 4 врсте)
  2. Преоптерећење вс прегласавање примерима
  3. Операције датотека Питхон-ом
  4. Питхон Едиторс (Топ 6 уредника)
  5. Примери уграђених функција Питхон-а

Категорија: