Например, класс может выглядеть примерно так:
Код: Выделить всё
class Foo:
def __init__(self, a, b) -> None:
self._a = a
self._b = b
def a(self): return self._a
def b(self): return self._b
def c(self): return self._a + self._b
Код: Выделить всё
foo_list = [
Foo(1,0),
Foo(0,1),
Foo(1,2),
Foo(3,3),
Foo(3,2),
]
for foo in foo_list:
match foo:
case Foo(a=a, b=0):
print(f'first a = {a}, b = {foo.b}')
case Foo(a=0, b=b):
print(f'second a = {foo.a}, b = {b}')
case Foo(a=1, b=b):
print(f'third a = {foo.a}, b = {b}')
case Foo(a=a, b=3):
print(f'forth a = {a}, b = {foo.b}')
case Foo(a=a, b=b, c=5):
print(f'fifth a = {a}, b = {b}, c = {foo.c}')
Каков питонический способ сопоставления/регистрации операторов с такими классами?
Подробнее здесь: https://stackoverflow.com/questions/786 ... t-only-pro