Junior — Middle
82
Peut-on définir un constructeur de classe comme une méthode virtuelle en Python?
Entreprises à qui on a demandé
ООО Цитадель
Réponse de l'IA
sobes.tech IA
В Python нет понятия виртуальных методов в том виде, как это реализовано в языках вроде C++ или Java. Конструктор класса в Python — это метод __init__, и он не может быть объявлен виртуальным.
Однако, благодаря динамической природе Python, если вы создадите метод __init__ в базовом классе и переопределите его в наследнике, то при создании объекта наследника будет вызван именно его конструктор. Это поведение по умолчанию, и его можно считать аналогом виртуального метода.
Пример:
class Base:
def __init__(self):
print("Base init")
class Derived(Base):
def __init__(self):
print("Derived init")
obj = Derived() # Выведет: Derived init
Таким образом, конструктор в Python по сути "виртуален" из-за динамического разрешения методов, но специального ключевого слова для этого нет.