我的班级可以在我的代码开始时调用,但是在我的测试循环时不可以调用

mo鼠74

我有2个文件:main.py和batsol.py

batsol.py包含一个类,而main.py正在从Batsol类中创建一些实例。因此,我将向您展示我的代码的简明版本...

class Batsol:
  def __init__(self, addressCan = None, name = None) :
    self.addressCan = addressCan
    self.name = name
    #other stuff ...

然后我的main.py:

from batsol import Batsol
# other import and code ...

print(callable(Batsol))
bs1 = Batsol()
# code...
if len(listener.ring_buffer) == 0 :
    for Batsol in tab_BS :
        try:
            print(tab_BS[Batsol])
        except (IndexError):
            pass
# code...
while(True) :
  # for and if interlocked
    print(callable(Batsol))
    bs2 = Batsol()

控制台显示:

True
False
Traceback (most recent call last):
File "./main.py", line 135, in <module>
bs2 = Batsol()
TypeError: 'int' object is not callable

在我看来,回溯的第二部分未链接到我在代码中正在执行的其他操作(线程未正确终止……类似),

Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
Traceback (most recent call last):
File "/usr/lib/python3.4/threading.py", line 1292, in _shutdown
t = _pickSomeNonDaemonThread()
File "/usr/lib/python3.4/threading.py", line 1300, in _pickSomeNonDaemonThread
if not t.daemon and t.is_alive():
TypeError: 'bool' object is not callable

为什么我的对象在我的测试循环中不可调用?它让我疯狂...

ŁukaszRogalski

您的阴影出现在以下代码片段中:

if len(listener.ring_buffer) == 0 :
    for Batsol in tab_BS :
        try:
            print(tab_BS[Batsol])
        except (IndexError):
            pass
time.sleep(4)

for-in 序列上的构造如下:

  1. 向序列询问下一个(第一个,第二个,...最后一个)元素。内部指针跟踪当前迭代中的元素。
  2. 元素被分配给“ in”左侧的名称。
  3. 转到1。

循环结束后,Batsol不再是您的课程,而是的最后一个元素tab_BS

我建议您使用更好的IDE或使用良好的静态代码分析工具(Pylint / Flake8等),因为这种错误很容易被例如PyCharm(您的代码阴影名称来自外部作用域)检测出来。

相关:在外部作用域中定义阴影名称有多糟糕?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的班级可以在我的代码开始时调用,但不能在我的测试循环时调用

来自分类Dev

为什么我的rspec测试本身可以通过,但是在运行特定测试时却失败了?

来自分类Dev

为什么在调试时我的代码可以运行,但是在按build&run时却崩溃?

来自分类Dev

我的代码通过了测试用例,但是在我提交时显示了错误的答案

来自分类Dev

我可以随时调用匿名类的方法吗?

来自分类Dev

Python/Kivy:我可以在双击标签时调用函数吗

来自分类Dev

我可以让我的实体框架 DbSet 在选择时调用我的表值函数吗?

来自分类Dev

当我尝试暂停并在jsFiddle中播放时,我的代码可以工作,但是在我的html页面中不起作用

来自分类Dev

我可以在 while 循环中调用我的函数吗?

来自分类Dev

我如何在NUnit测试会话开始时执行代码(而不是夹具设置)

来自分类Dev

我们可以在 Kotlin 单元测试中使用代码调用活动吗

来自分类Dev

我可以使用xpath(在lxml中)查找开始时未知的标记的名称吗?

来自分类Dev

是否可以在我的命令开始时添加一个空格?

来自分类Dev

我可以在Ruby测试中伪造调用方法吗?

来自分类Dev

为什么我必须在开始时引用组件,但是在没有空的情况下声明变量?

来自分类Dev

Perl:为什么我可以递归地调用子例程A,但是我不能从B调用A,而B是从较早的A调用的呢?

来自分类Dev

我可以从线程内循环调用线程吗?

来自分类Dev

我可以在 python 中循环调用 super 吗?

来自分类Dev

当我获取数据时,我可以看到该状态已设置,但是当我从状态中调用数据时,它显示对象未定义

来自分类Dev

我可以从调用代码中退出ipython吗?

来自分类Dev

我可以在实例化Linq到SQL Query中的对象时调用自己的方法吗?

来自分类Dev

我可以在实例化Linq到SQL Query中的对象时调用自己的方法吗?

来自分类Dev

我可以只在手风琴打开时调用函数吗?

来自分类Dev

我针对LocalDB的代码可以运行,但是在任何地方都看不到数据库

来自分类Dev

我针对LocalDB的代码可以运行,但是在任何地方都看不到数据库

来自分类Dev

WebView不能打开我的我的网站,但是在浏览器中可以工作

来自分类Dev

在每个动作开始时调用函数

来自分类Dev

搜索栏可以正常工作,但是在我要设置表格单元格标签时崩溃

来自分类Dev

当我手动运行脚本时,脚本可以完美运行,但是在crontab上出现了问题

Related 相关文章

  1. 1

    我的班级可以在我的代码开始时调用,但不能在我的测试循环时调用

  2. 2

    为什么我的rspec测试本身可以通过,但是在运行特定测试时却失败了?

  3. 3

    为什么在调试时我的代码可以运行,但是在按build&run时却崩溃?

  4. 4

    我的代码通过了测试用例,但是在我提交时显示了错误的答案

  5. 5

    我可以随时调用匿名类的方法吗?

  6. 6

    Python/Kivy:我可以在双击标签时调用函数吗

  7. 7

    我可以让我的实体框架 DbSet 在选择时调用我的表值函数吗?

  8. 8

    当我尝试暂停并在jsFiddle中播放时,我的代码可以工作,但是在我的html页面中不起作用

  9. 9

    我可以在 while 循环中调用我的函数吗?

  10. 10

    我如何在NUnit测试会话开始时执行代码(而不是夹具设置)

  11. 11

    我们可以在 Kotlin 单元测试中使用代码调用活动吗

  12. 12

    我可以使用xpath(在lxml中)查找开始时未知的标记的名称吗?

  13. 13

    是否可以在我的命令开始时添加一个空格?

  14. 14

    我可以在Ruby测试中伪造调用方法吗?

  15. 15

    为什么我必须在开始时引用组件,但是在没有空的情况下声明变量?

  16. 16

    Perl:为什么我可以递归地调用子例程A,但是我不能从B调用A,而B是从较早的A调用的呢?

  17. 17

    我可以从线程内循环调用线程吗?

  18. 18

    我可以在 python 中循环调用 super 吗?

  19. 19

    当我获取数据时,我可以看到该状态已设置,但是当我从状态中调用数据时,它显示对象未定义

  20. 20

    我可以从调用代码中退出ipython吗?

  21. 21

    我可以在实例化Linq到SQL Query中的对象时调用自己的方法吗?

  22. 22

    我可以在实例化Linq到SQL Query中的对象时调用自己的方法吗?

  23. 23

    我可以只在手风琴打开时调用函数吗?

  24. 24

    我针对LocalDB的代码可以运行,但是在任何地方都看不到数据库

  25. 25

    我针对LocalDB的代码可以运行,但是在任何地方都看不到数据库

  26. 26

    WebView不能打开我的我的网站,但是在浏览器中可以工作

  27. 27

    在每个动作开始时调用函数

  28. 28

    搜索栏可以正常工作,但是在我要设置表格单元格标签时崩溃

  29. 29

    当我手动运行脚本时,脚本可以完美运行,但是在crontab上出现了问题

热门标签

归档