我有三个文件:
1.)一个python文件test.py
:
import clips
PATH_TO_CLP_FILE = r'd:\temp\batch_bug.clp'
clips.BatchStar(PATH_TO_CLP_FILE)
clips.PrintFacts()
2.)一个文件batch_bug.clp
:
(assert (asdf0))
(batch "D:\\temp\\batchbug2.clp")
(assert (asdf1))
(printout t (facts))
最后是一个文件batchbug2.clp
:
(assert (fdsa))
运行python test.py
结果如下:
f-0 (initial-fact)
f-1 (asdf0)
f-2 (asdf1)
For a total of 3 facts.
[ENVRNMNT8] Environment data not fully deallocated.
[ENVRNMNT8] MemoryAmount = 22.
[ENVRNMNT8] MemoryCalls = 1.
这不是我所期望的,因为没有(fdsa)
事实,即调用(batch "D:\\temp\\batchbug2.clp")
不起作用。此外,还有留[ENVRNMNT8]
言。这里发生了什么?
编辑:
我发现了 CLIPSbatch*(...)
命令。并使用它而不是batch(...)
按预期工作。这是为什么?