Введення в перевантаження Python

Перевантаження - це процес отримання однакової назви для декількох об'єктів (методів, операторів тощо), але вони відрізняються за своїми ознаками. Різниця в атрибутах може бути обумовлена ​​різницею в кількості атрибутів або різницею в типі атрибутів. Іншими словами, з точки зору сутності (методи, оператори тощо), це може бути розроблено або пояснено як здатність суб'єкта господарювання поводитися по-різному відповідно до параметрів, які йому подаються. У 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

  • Підвищує багаторазове використання коду.
  • Підвищує чіткість коду.
  • Складність коду значно знижується.

Висновок

Перевантаження відіграє важливу роль у багатьох мовах програмування високого рівня. У випадку з python, хоча вони безпосередньо не маються на увазі, вони відіграють важливу роль у уникненні повторного використання коду.

Рекомендовані статті

Це посібник із перевантаження Python. Тут ми обговорюємо визначені користувачем та заздалегідь визначені функції разом з її оператором та перевагами. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Змінні Python (топ-4 типи)
  2. Перевантаження проти перекриття прикладами
  3. Операції з файлом Python
  4. Редактори Python (Топ-6 редакторів)
  5. Приклади вбудованих функцій Python