Python | Вопросы собесов
13.8K subscribers
36 photos
1 file
960 links
Download Telegram
Forwarded from easyoffer
Канал приближается к 20к подписчиков, а здесь так и нет нормального контент плана 😒

Ищу талантливых журналистов, способных писать клевые и авторские посты на тему "Карьера в IT" и все что с этим связано: поиск работы, повышение з/п, разбор кейсов, переезд в другие страны по рабочим визам, аналитика, исследование рынка и т.д.

Важно глубокое понимание IT индустрии, вы должны иметь опыт работы в ней

Если интересно отправьте мне свое резюме @kivaiko
😁3🤔2💊2
Как работает наследование классов ?
Спросят с вероятностью 3%

Наследование классов позволяет создавать новый класс на основе уже существующего класса. Новый класс, называемый подклассом (или дочерним классом), наследует атрибуты и методы родительского класса (или базового класса), при этом может добавлять новые атрибуты и методы или переопределять существующие.

Как оно работает?


1️⃣Создание базового класса: Определяем базовый класс, содержащий общие атрибуты и методы.
2️⃣Создание подкласса: Определяем подкласс, который наследует базовый класс. Для этого указываем базовый класс в скобках при определении подкласса.
3️⃣Использование подкласса: Создаем экземпляры подкласса, которые будут иметь доступ к атрибутам и методам как подкласса, так и базового класса.

Базовый класс
class Animal:
def __init__(self, name):
self.name = name

def speak(self):
raise NotImplementedError("Subclass must implement abstract method")


Подклассы
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"

class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"


Использование
dog = Dog("Buddy")
cat = Cat("Whiskers")

print(dog.speak()) # Выведет: Buddy says Woof!
print(cat.speak()) # Выведет: Whiskers says Meow!


Переопределение методов

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

Вызов методов базового класса

Подклассы могут вызывать методы базового класса с помощью функции super(). Это особенно полезно при переопределении метода __init__.
class Bird(Animal):
def __init__(self, name, can_fly):
super().__init__(name)
self.can_fly = can_fly

def speak(self):
return f"{self.name} says Tweet!"


Множественное наследование


Python поддерживает множественное наследование, что позволяет подклассу наследовать атрибуты и методы от нескольких базовых классов. Однако это может усложнить структуру и логику программы.
class Flyer:
def fly(self):
return "Flying high!"

class Swimmer:
def swim(self):
return "Swimming fast!"

class Duck(Animal, Flyer, Swimmer):
def speak(self):
return f"{self.name} says Quack!"


Полиморфизм

Позволяет использовать объекты разных классов через единый интерфейс. Например, все подклассы Animal могут вызывать метод speak, независимо от того, какой конкретный класс они представляют.
animals = [Dog("Buddy"), Cat("Whiskers"), Duck("Donald")]

for animal in animals:
print(animal.speak())

# Выведет:
# Buddy says Woof!
# Whiskers says Meow!
# Donald says Quack!


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