Введение в перегрузку Python

Перегрузка - это процесс присвоения одного и того же имени нескольким объектам (методам, операторам и т. Д.), Но они различаются по своим атрибутам. Разница в атрибутах может быть вызвана разницей в количестве атрибутов или различием в типе атрибутов. Другими словами, с точки зрения сущности (методы, операторы и т. Д.) Его можно сформулировать или объяснить как способность сущности вести себя по-разному в соответствии с параметрами, которые ему передаются. В Python, как и в большинстве других языков программирования высокого уровня, перегрузка Python может быть достигнута двумя способами или примерами, они перечислены ниже,

  • Перегрузка функций или методов (Function Overloading).
  • Перегрузка операторов (Operator Overloading).

Перегрузка функций в Python

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

  • Перегрузка пользовательских функций.
  • Перегрузка функций по умолчанию.

1. Перегрузка пользовательских функций

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

Пример:

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

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

Вывод

Перегрузка играет жизненно важную роль во многих языках программирования высокого уровня. В случае с Python, хотя они не подразумеваются напрямую, они играют важную роль во избежании повторного использования кода.

Рекомендуемые статьи

Это руководство по перегрузке Python. Здесь мы обсуждаем пользовательские и предопределенные функции вместе с их оператором и преимуществами. Вы также можете посмотреть следующие статьи, чтобы узнать больше

  1. Переменные Python (4 лучших типа)
  2. Перегрузка против переопределения с примерами
  3. Файловые операции Python
  4. Редакторы Python (6 лучших редакторов)
  5. Примеры встроенных функций Python