Python 如何获取函数参数?实现嵌套蕴含逻辑表达式真值校验
现有代码基础
当前已经完成两类核心结构的定义:
Prop类:用于封装带布尔取值的命题对象,实例可存储命题的布尔值、附加名称,同时提供取值、修改名称、校验并修改布尔值的方法。
class Prop: def __init__(self, val, name=None): self.val=val self.name=name def getVal(self): return self.val def giveName(self, newname): self.name=newname def getName(self, name): return self.name def changeVal(self, newval): if type(newval)!=bool: raise ValueError("You are trying to assign non-boolean value to the proposition") else: self.val=newval
- 布尔蕴含计算函数
impl(p, q):遵循标准命题逻辑的蕴含真值规则——仅当前件为真、后件为假时,蕴含式结果为假,其余场景结果为真,计算结果同样封装为Prop对象返回。
def impl(p, q): if p.getVal()==True and q.getVal()==False: return Prop(False) else: return Prop(True)
待实现的需求与疑问
- 核心功能开发需求:实现一个真值校验函数,参数规则与计算逻辑如下:
- 函数第一个入参为多层嵌套的
impl表达式,例如impl(impl(p,q), r)这类结构 - 函数第二个入参为
Prop对象组成的列表,例如[p, q, r],列表中存储了已知取值的命题 - 函数需要基于传入列表内命题的实际取值,计算整个嵌套逻辑表达式的最终真值
- 补值规则:如果表达式涉及的命题未出现在传入的Prop列表中,程序需默认将该命题取值视为False
- 函数第一个入参为多层嵌套的
- 附加技术疑问:针对上述嵌套的函数调用结构,在Python中如何获取传入函数的全部参数,以此支撑表达式真值的计算校验?
内容的提问来源于stack exchange,提问作者Desintegration Loops
相关产品推荐
相关产品推荐

