У меня проблема с пониманием, почему интерпретатор не принимает это:
Object co = current Object
Object o = object(co."Absolute Number")
Ошибка: "неправильные аргументы для функции (объекта)" / "неправильно объединенные токены". Я убедился, что тип, возвращаемый co."Absolute Number"
, соответствует ожиданиям Object object(int absno[, Module m])
, поскольку он был объявлен в соответствии с руководством DXL:
print type(co."Absolute Number")
который печатает "Целое число". Вроде все нормально, но явно не так.
Это не проблема этого конкретного атрибута. co."Object Text"
должен возвращать строку, но и с этим атрибутом интерпретатор не распознает тип данных.
Добавление скобок в разных местах не помогает. Попытка явным образом преобразовать возвращаемое значение атрибута в целое число не помогает. Что помогает, так это сохранение возвращаемого значения в целочисленной переменной:
Object co = current Object
int no = co."Absolute Number"
Object o = object(no)
который мне не нравится, потому что он вводит неиспользуемые переменные. Также работает стандартный строковый подход: преобразовать значение атрибута в строку, а затем (обратно) в целое число:
Object o = object(intOf(co."Absolute Number" ""))
но это довольно хаки для меня. Что я упустил из виду?