我无法理解为什么解释器不接受这一点:
Object co = current Object
Object o = object(co."Absolute Number")
错误是:"incorrect arguments for function (object)" /
"incorrectly concatenated tokens"。我验证了返回的类型与根据 DXL 手册声明co."Absolute Number"
的预期相匹配:Object object(int absno[, Module m])
print type(co."Absolute Number")
打印"Integer"。看起来很好,但显然不是。
这不是该特定属性的问题。co."Object Text"
应该返回一个字符串,但同样具有该属性,解释器无法识别数据类型。
在各个地方添加括号无济于事。尝试将返回的属性值显式转换为整数并没有帮助。有帮助的是将返回的值存储到一个整数变量中:
Object co = current Object
int no = co."Absolute Number"
Object o = object(no)
我不喜欢,因为它引入了未使用的变量。同样有效的是使用标准字符串方法:将属性值转换为字符串,然后(返回)转换为整数:
Object o = object(intOf(co."Absolute Number" ""))
但这对我来说相当hacky。我忽略了什么?