类型错误:预期范围()整数结束参数,得到 int

我正在使用 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 控制台中,结果是正确的。


繁星淼淼
浏览 177回答 1
1回答

哈士奇WWW

Squish int 与 Python int 不同:Squish 的 int 表示包装器的 C 和 C++ 代码中整数的 Squish 类型。与其他隐藏符号一样,要访问 Python 的 int() 函数,可以从包 __builtin__ (Python 2) 或 builtins (Python 3) 中使用它。(其他类型也不同)参见Squish 的 int 与 Python 的 int或者更一般地讲Squish 手册中的Python 注释。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python