似乎PyCLIPS在翻译之前将非常大的数字转换为int。
有关转换Python的信息,请参阅here - >剪辑
def _py2cl(o):
"""convert Python data to a well-formed tuple"""
t1 = type(o)
if t1 in (int, long):
return (_c.INTEGER, int(o))
但here转换CLIPS - >蟒
...
def _cl2py(o):
"""convert a well-formed tuple to one of the CLIPS wrappers"""
if o is None: return None
elif type(o) == tuple and len(o) == 2:
if o[0] == _c.INTEGER:
return Integer(o[1])
...
...
# 1) numeric types
class Integer(int):
"""extend an int for use with CLIPS"""
def __repr__(self):
return "<Integer %s>" % int.__repr__(self)
def __add__(self, o):
return Integer(int(self) + int(o))
...
我是对的,在CLIPS和PyCLIPS中都没有长期类型吗?是否将所有内容(截断)转换为int?这是一个错误吗?
我问,因为将值6442901632
从CLIPS传递给python,通过python调用成为python中的值0x7fffffff
。或者我的32位Python导致了这个问题?
如何通过PyClips将大于python&#39; s int
的值从CLIPS传递给python?