我正在重构旧代码并遇到了几个过于复杂和冗长的IF条件,我确信它们可以简化.我的猜测是,由于后来的修改,这些条件增长了很多.
无论如何,我想知道你们是否知道我可以使用的一个好的在线简化器.我对任何特定的语言都不感兴趣,只是一个简化的例子:
((A或B)和(!B和C)或C)
并给我一个表达式的简化版本,如果有的话.
我看过其他类似的问题但是没有人指出一个好的简化器.
谢谢.
eval()
Python中有一个函数我在玩游戏时偶然发现.我不能想到需要这个功能的情况,除了可能是语法糖.谁能举个例子?
我想知道是否存在允许我做这样的事情的python模块:
x = MagicNumber()
x.value = 3
y = 2 * (x + 2) ** 2 - 8
print y # 42
x.value = 2
print y # 24
Run Code Online (Sandbox Code Playgroud)
因此,MagicNumber
将实现所有特殊的运算符方法,并且它们都将返回MagicNumber的实例,同时跟踪执行的操作.有这样的课吗?
编辑:澄清
我想在一个模块中使用它,该模块应该记住用户希望执行的某些任意计算的许多参数.因此,用户将设置参数,然后使用它们来生成结果.然后如果他决定改变参数,那么改变会立即反映在他的结果中.因此,只有一个参数实例的非常简化的使用会话将如下所示:
p = MyParams()
p.distance = 13.4 # I use __getattr__ and __setattr__ such that
p.speed = 3.14 # __getattr__ returns MagicNumber instances
time = p.distance / p.speed
Run Code Online (Sandbox Code Playgroud)
编辑2:更多澄清
好的,我会从一开始就做我应该做的.我会提供上下文.
您是一名工程师,您将制作一份LaTeX文档,详细说明某些原型小工具的工作原理和属性.对于不同的原型,这是一项重复的任务.你写了一个小的LaTeX python接口.对于每个原型,您创建一个生成必需文档的python模块.在其中输入LaTeX代码,同时根据需要计算变量,以便计算在上下文中.过了一会你就发现了两个问题:
出于这个问题出现了原始问题.