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

В чем разница между поиском родителя в Python 2 и Python 3

В Python 2 для поиска родительского класса используется метод __getattribute__ и атрибут __bases__, тогда как в Python 3 используется более явный и надежный механизм через super().

Пример для Python 2:

python
class Parent(object):
    def foo(self):
        print("Parent foo")

class Child(Parent):
def foo(self):
Parent.foo(self) # Явный вызов родительского метода
print("Child foo")

text

Пример для Python 3:
```python
class Parent:
    def foo(self):
        print("Parent foo")

class Child(Parent):
    def foo(self):
        super().foo()  # Автоматический поиск родителя
        print("Child foo")

Ключевые различия:

  1. В Python 3 super() работает без аргументов (под капотом использует __class__ и self)
  2. В Python 2 нужно явно передавать класс и экземпляр: super(Child, self)
  3. Python 3 упрощает множественное наследование благодаря улучшенному MRO (Method Resolution Order)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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