Передача больших чисел (больше, чем int в Python) из CLIPS в python через PyCLIPS
Кажется, что PyCLIPS преобразует очень большие числа в int перед их переводом.
Смотрите здесь для преобразования Python -> CLIPS
def _py2cl(o):
"""convert Python data to a well-formed tuple"""
t1 = type(o)
if t1 in (int, long):
return (_c.INTEGER, int(o))
Но также здесь для преобразования CLIPS -> Python
...
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 становится значение 0x7fffffff
в питоне. Или мой 32-битный Python вызывает проблему?
Как я могу передать значения, которые больше, чем в Python int
из CLIPS в Python через PyClips?