Встречается на собеседованиях • сегодня

Есть ли перегрузка методов в Python

В Python нет перегрузки методов в классическом понимании (как в Java или C++), где можно определить несколько методов с одним именем, но разными параметрами. Однако есть несколько способов достичь похожего поведения:

  1. Аргументы по умолчанию
    Можно использовать параметры со значениями по умолчанию, чтобы метод работал с разным количеством аргументов.

    python
    def greet(name, message="Hello"):
        print(f"{message}, {name}!")
    
    greet("Alice")  # Hello, Alice!
    greet("Bob", "Hi")  # Hi, Bob!
  1. *args и **kwargs
    Позволяют принимать произвольное количество позиционных и именованных аргументов.

    python
    def process(*args, **kwargs):
        print("Positional:", args)
        print("Keyword:", kwargs)
    
    process(1, 2, name="Alice")
  2. Декораторы (например, functools.singledispatch)
    Для перегрузки по типам аргументов.

    python
    from functools import singledispatch
    
    @singledispatch
    def func(arg):
        print("Default:", arg)
    
    @func.register(int)
    def _(arg):
        print("Integer:", arg)
    
    func(10)  # Integer: 10
    func("text")  # Default: text

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

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы