Mixins

Сама идея миксинов - подразумевает расширение возможностей объекта или класса (самого же создания экземпляра класса для миксина не предполагается)

class FoodMixins(Person):
	food = None
	
	def get_food(self):
		if self.food is None:
			raise ValueError("Food should be set")
		print(f"I like {self.food}")

class Person:
	def hello(self):
		print("I am Human")

# Первым вставляем миксину для расширения класса
class Student(FoodMixins, Person):
	food = "Pizza"
	def hello(self):
		print("I am a student")

s = Student()

s.hello()
123456789101112131415161718192021

[!info] Когда применяются Mixins Например, когда нам нужно добавить какую-нибудь фичу большому количеству не связных между собой классов

Last updated