TypeError:range()整数结束参数应为int

时间:2019-03-27 08:04:10

标签: python qt integer int squish

我正在使用Squish 6.4.2测试我的Qt应用程序,并使用Python 2.7.10作为测试脚本语言,并在尝试使用range()函数时收到以下错误消息:

TypeError: range() integer end argument expected, got int.

这是一个小代码示例,我的输出在Squish中:

def main():
    test.log(str(range(4)))
    test.log(str(range(int(4))))
[0, 1, 2, 3]
Error: Script Error
    Detail: TypeError: range() integer end argument expected, got int.

如您所见,range(4)有效,但range(int(4))无效。

我尝试在Squish应用程序随附的Python版本的Python控制台中运行相同的代码,并且两个range()调用都可以正常工作。

Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> range(4)
[0, 1, 2, 3]
>>> range(int(4))
[0, 1, 2, 3]
>>>

此外,当我将整数与强制转换的int进行比较时,在Squish中比较结果是错误的。例如在Squish中:

def main():
    test.log(str(7<4))
    test.log(str(7 < int(4)))

给予

False
True

尽管在Python控制台中结果还是正确的。

1 个答案:

答案 0 :(得分:2)

Squash int与Python int不同:

  

Squish的int表示Squish类型的整数   包装程序的C和C ++代码。

     

与其他隐藏符号一样,访问Python的int()函数   可以从__builtin__(Python 2)包或Builtins(Python   3)。

(其他类型也不同)

请参见Squish's int vs. Python's int

或更普遍地说,是《 Squish手册》中的Python Notes