2024-04-19 10:44:48 发布
网友
我正在使用pyDatalog(在python2.7中)。使用像+这样的算术函数,我可以引用前面的绑定变量:
+
>>> (X==1) & (Y==X+1) [(1, 2)]
但是我不能以同样的方式使用布尔not运算符:
not
>>> not(False) True >>> (X==False) & (Y==not(X)) File "<stdin>", line 1 (X==False) & (Y==not(X)) ^ SyntaxError: invalid syntax >>>
您可以使用自定义解析器:
from pyDatalog import pyDatalog @pyDatalog.predicate() def not_2(X,Y): if X.is_const(): yield (X.id, not(X.id)) elif Y.is_const(): yield (not(Y.id), Y.id) @pyDatalog.program() def _(): print ((X==False) & (not_(X,Y)))
在Python中,它是运算符优先级
(Y == (not(X))
或者
(Y == not X)
您可以使用自定义解析器:
在Python中,它是运算符优先级
或者
相关问题 更多 >
编程相关推荐