Передача больших чисел (больше, чем 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?

0 ответов

Другие вопросы по тегам