我正在尝试用 Python 编写电路原理图绘图工具。我正在基于包含所有组件及其属性的字典创建一个简单的数据库。我还在尝试创建一种简单的查询语言,您可以在其中选择,例如,所有电阻值>100ohms 或footprint='0402'
到目前为止,我可以使用一些原始谓词搜索来选择事物,然后对更复杂的事物进行联合和交集。
但是,我无法定义纯否定搜索的语义应该是什么。例如,像
足迹!='0402'
应该选择所有足迹不等于 0402 的项目。但是只用交叉点执行此操作会给我一个空白结果。为此,我需要选择所有组件,然后与“not 0402”相交以删除我不想要的组件。
但这似乎是一种蛮力,似乎是一个可疑的解决方案。我对使用“真正的”数据库和查询语言不感兴趣,所以请不要这样做。我在这里寻找适当的工程原理,不一定是解决问题的方法。
这个问题在 SICP 书中有所涉及,但我很困惑,因为我认为他们也在使用延续和东西,我还没有得到。
有人可以解释一下消极选择东西的“正确”用法应该是什么。我在商业 cad 工具中尝试过,它按预期工作,但后来我看到了一些 SQL 查询示例(我认为),它们首先选择了一些东西,然后删除了不需要的东西。
谢谢
迈克尔