Я в настоящее время изучаю ООП в Python и наткнулся на книгу под названием «Mastering oop от Стивена Ф. Лотта». В этой книге есть класс, который наследует от str , и после исключения наследства класс, похоже, работает так же. Таким образом, мне было интересно, каковы хорошие варианты использования, чтобы унаследовать от str :
Код: Выделить всё
from enum import Enum
class Suit(str,Enum):
Club = "♣"
Diamond = "♦"
Heart = "♥"
Spade = "♠"
cards = [AceCard('A', Suit.Spade), Card('2',Suit.Spade), FaceCard('J',Suit.Spade),]
print([c.suit for c in cards])
[, , ]
Я также узнал, что если кто -то хочет унаследовать от типа str и изменить после. Следует реализовать __new __ статический метод, как в:
Код: Выделить всё
class Suit(str):
def __new__(cls,*args,**kwargs):
return str.__new__(cls,*args,**kwargs)
Однако я не уверен, как можно будет хорошо использовать это наследование.
Подробнее здесь:
https://stackoverflow.com/questions/725 ... -str-class