Использование сопоставления рисунков с классом, которое наследует от Str в Python 3.10Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование сопоставления рисунков с классом, которое наследует от Str в Python 3.10

Сообщение Anonymous »

В библиотеке анализатора, которую я поддерживаю, у меня есть несколько классов, которые наследуют от str для управления проанализированными строками и анализовыми символами. Это работало хорошо в течение долгого времени, но с Python 3.10 кто -то попросил использовать возможность использовать Match и case в этих классах. Я построил пример сценария, который показывает, как это терпит неудачу: < /p>
class Binge(str):
def __eq__(self, other):
return self.__class__ == other.__class__ and str.__eq__(self, other)

def __ne__(self, other):
return not self == other

# These two asserts are important for how the class is used
assert Binge('a') == Binge('a')
assert Binge('a') != 'a'

# What does it take to then make this work?
matched = False
match Binge("asdf"):
case Binge("asdf"):
matched = True
assert matched
< /code>
Если я добавлю: < /p>
print(self.__class__, other.__class__)

В функции __eq __ я вижу это:



Подробнее здесь: https://stackoverflow.com/questions/796 ... ython-3-10
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»