Въведение в Python Overloading

Претоварването е процес на едно и също име за повече от едно образувание (методи, оператори и т.н.), но те се различават по своите атрибути. Разликата в атрибутите може да се дължи на разлика в броя на атрибутите или на разликата във вида на атрибутите. С други думи от гледна точка на субекта (методи, оператори и т.н.), той може да бъде съставен или обяснен като способността на предприятието да се държи различно според параметрите, подадени към него. В python, като повечето други езици за програмиране на високо ниво, претоварването на python може да бъде постигнато по два начина или в случаите, те са изброени по-долу,

  • Претоварване на функции или методи (Функция Претоварване).
  • Претоварване на оператори (оператор Претоварване).

Функция Претоварване в Python

Претоварването на метода не е приложена концепция в python, но може да се постигне чрез няколко техники. На първо място концепцията за претоварване на метода може да бъде класифицирана в две различни концепции, т.е.

  • Претоварване на дефинирани от потребителя функции.
  • Претоварване на функции по подразбиране.

1. Претоварване на потребителски функции

Пренатоварването с дефинирана от потребителя функция може да бъде постигнато в python чрез задаване на стойност на параметър или аргумент като няма. Така че, ако аргументът е зададен като нито един, функцията реагира по един начин, когато не се предава стойност за този аргумент, и по различен начин, когато не се предава стойност за същия аргумент.

Пример:

#!/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. Претоварване по подразбиране или предварително дефинирани функции

Претоварването на вградените функции включва дефиниране на предварително дефинираната функция, която се очаква да бъде претоварена в класа python като специална функция. Така че, когато предварително дефинираната функция е декларирана като специална функция в класа python, тогава интерпретаторът ще използва тази специална функция като декларация за предварително дефинирания разговор. Примерът по-долу обяснява точно този процес.

Пример:

нека разгледаме функцията len (), която се използва за определяне на дължината на елемент за този пример, по-долу примерът показва стандартно използване на функцията за дължина, без да предполага претоварване и създава съответното въздействие.

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

изход:

Сега нека използваме метод за претоварване за функцията len () в същия кодов фрагмент

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

изход:

Ясно можем да забележим, вместо да използваме обичайната функционалност на вградената дължина, се използва претоварената специална функция __len __ (), която прави изхода за отпечатване на сумираната дължина на двата списъка вместо тяхната индивидуална дължина.

Претоварване на оператор в Python

Това включва разширено тълкуване на оператор повече от първоначалното му предназначение. Най-често срещаният пример е операторът за добавяне '+', където може да се използва за обичайно добавяне, а също и за присъединяване на два различни низа.

Пример:

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

изход:

Предимства на Python Overloading

  • Увеличава повторната употреба на кода.
  • Увеличава яснотата на кода.
  • Сложността на кода е значително намалена.

заключение

Претоварването играе жизненоважна роля в много езици за програмиране на високо ниво, В случая на python, макар и да не се подразбира директно, те играят важна роля за избягване на повтарящото се използване на код.

Препоръчителни статии

Това е ръководство за Python Overloading. Тук обсъждаме дефинираните от потребителя и предварително дефинираните функции, заедно с неговия оператор и предимствата. Можете също да разгледате следните статии, за да научите повече-

  1. Променливи на Python (Топ 4 вида)
  2. Претоварване срещу преодоляване с примери
  3. Python File Operations
  4. Python редактори (топ 6 редактори)
  5. Примери за вградени функции на Python