【发布时间】:2022-01-03 01:51:33
【问题描述】:
所以我被赋予了使用 OOP 来获得以下真值表的任务。我必须在表达式上制作方法 make_tt(),即
e=Eq(NOT(Var('y')),Var('x'))
这样它会返回以下真值表。
其中,Eq 代表 '==' 而不是代表 '!'
y | x | !y==x
True | True | False
False| True | True
True | False| True
False| False| False
我首先创建了父类 Expr,我将从中创建 Eq 和 Not 类以继承常见的东西,但我不知道如何编写 make_tt() 以使其产生以下结果。
class Expr:
def __init__ (self,left,right):
self.left=left
self.right=right
def __str__(self):
return f'{self.left}{self.sign}{self.right}'
class Not(Expr):
def __init__(self,variable):
self.variable=variable
sign='!'
def __str__(self):
return f'{self.sign}{self.variable}'
class Eq(Expr):
sign='=='
class Var:
def __init__(self,value):
self.value=value
def __str__(self):
return str(self.value)
e=Eq(NOT(Var('y')),Var('x'))
如果我这样做
e.make_tt()
它应该产生如你在上面看到的真值表。
y | x | !y==x
True | True | False
False| True | True
True | False| True
False| False| False
【问题讨论】:
标签: python-3.x oop recursion tree