> For the complete documentation index, see [llms.txt](https://igor-19.gitbook.io/qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://igor-19.gitbook.io/qa/avtomatizaciya-testirovaniya/python/oop-v-python-vo-vsekh-podrobnostyakh/mixins.md).

# Mixins

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

```python
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*\
> Например, когда нам нужно добавить какую-нибудь фичу большому количеству не связных между собой классов
