Я читал исходный код Sympy, чтобы попытаться выяснить, могу ли я добавить свою собственную логическую операцию. Здесь определяются логические операции: https://github.com/sympy/sympy/blob/master/sympy/logic/boolalg.pyОпределите новую логическую операцию в Sympy
Возможно ли без изменения самой библиотеки? Я предполагаю, что мне нужно создать класс, который расширяет Булева функция, но тогда в этом фрагменте кода:
class Boolean(Basic):
"""A boolean object is an object for which logic operations make sense."""
__slots__ = []
def __and__(self, other):
"""Overloading for & operator"""
return And(self, other)
__rand__ = __and__
def __or__(self, other):
"""Overloading for |"""
return Or(self, other)
__ror__ = __or__
def __invert__(self):
"""Overloading for ~"""
return Not(self)
def __rshift__(self, other):
"""Overloading for >>"""
return Implies(self, other)
def __lshift__(self, other):
"""Overloading for <<"""
return Implies(other, self)
__rrshift__ = __lshift__
__rlshift__ = __rshift__
def __xor__(self, other):
return Xor(self, other)
__rxor__ = __xor__
Как я могу добавить новую операцию, не изменяя класс?
ОК получил, спасибо! – Lana