Электронная книга "Шаблоны, рецепты и идиомы Python 3" содержит ошибку преобразования V3 в разделе о конечных автоматах .Ссылка «Редактировать в Bitbucket» ведет к 404, и, похоже, нет другого способа сообщить о проблеме.Есть ли способ сообщить об этом или отредактировать книгу?
Вот подробности: потому что cmp больше не соблюдается в v3 cmp метод здесь
class MouseAction:
def __init__(self, action):
self.action = action
def __str__(self): return self.action
def __cmp__(self, other): # <<--------
return cmp(self.action, other.action) # <<--------
# Necessary when __cmp__ or __eq__ is defined
# in order to make this class usable as a
# dictionary key:
def __hash__(self):
return hash(self.action)
должен быть заменен на
def __eq__(self, other):
return self.action == other.action
Технически __eq__
возвращает логическое значение, тогда как __cmp__
в версии 2 вернул число.Однако код в этом примере, кажется, работает нормально с этим одним изменением.