Значения в скобках у класса
Только начал изучать Python и столкнулся с конструкцией типа:
class ModelName(str, Enum):
alexnet = "alexnet"
resnet = "resnet"
lenet = "lenet"
Знаю, что в скобках обычно указывается класс, от которого мы наследуемся, но что в данном случае значат эти два выражения в рамках этого класса?
Ответы (2 шт):
Класс ModelName наследует от двух других классов(str, Enum). То есть объектам класса ModelName будут доступны все атрибуты и методы наследуемых классов, помимо собственных.
Вы можете убедится в этом, используя точечное обращение к объекту после его инициализации:
my_object = ModelName()
my_object.
Или print(dir(my_object)) - выведет список всех атрибутов и методов объекта.
Это означает то, что класс наследовал у. str и Enum и имеет их же атрибуты. Тем самым, мы можем воспользоваться одним из их атрибутов:
from enum import Enum
from typing import SupportsIndex
class ModelName(str, Enum):
alexnet = "alexnet"
resnet = "resnet"
lenet = "lenet"
def split(self, sep: str | None = ..., maxsplit: SupportsIndex = ...) -> list[str]:
pass