type В Python
type — это не только функция для проверки типа, но и метакласс, позволяющий на лету создавать новые классы.
# Обычный класс
class MyClass:
x = 10
def hello(self):
return f"Hello, x = {self.x}"
# То же самое, но через type()
MyDynamicClass = type(
"MyDynamicClass", # имя класса
(object,), # базовые классы
{ # атрибуты и методы
"x": 10,
"hello": lambda self: f"Hello, x = {self.x}"
}
)
obj = MyDynamicClass()
print(obj.hello()) # Hello, x = 10