#python #callable
#python #вызываемый
Вопрос:
Почему в документации говорится:
коллекции классов.Вызываемый
Азбука для классов, которые предоставляют соответственно методы contains(), hash(), len() и call() .
И не только __call__()
?
Какова роль __contains__()
, __hash__()
, __len__()
для вызываемого объекта?
Например, нужно ли мне делать мои классы хэшируемыми?
Комментарии:
1. Обратите внимание на слово соответственно .
2. Я устал. Спасибо
Ответ №1:
Вы неправильно понимаете, что говорится в этом тексте. Документация охватывает четыре азбуки:
class collections.Container
class collections.Hashable
class collections.Sized
class collections.Callable
Грамматическая конструкция соответственно в предложении ABCs для классов, которые предоставляют соответственно методы, присоединяет отдельный метод к каждому из четырех классов здесь, по порядку.
Итак Container
, предоставляет __contains__()
, Hashable
покрывает __hash__()
, Sized
покрывает __len__()
и Callable
покрывает __call__()
.
Другими словами, Callable
предоставляет только __call__()
метод, а не какой-либо из других 3 методов.