当我有属性时,为什么我会得到AttributeError?

2024-06-09 11:09:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直收到以下错误:

AttributeError: Caribou instance has no attribute 'on_key_up'

问题是,我很确定我确实有这个属性。。。在

以下是我的代码(来自北美驯鹿.py)公司名称:

^{pr2}$

这是导致错误的那条线:

pyatspi.Registry.registerKeystrokeListener(caribou.on_key_up, mask=None, kind=(pyatspi.KEY_RELEASED_EVENT,))

有人看到我做错什么了吗?在

谢谢!在

编辑:哎哟——下面是我如何创建驯鹿实例:

caribou = Caribou()

Tags: instancekeyno代码属性on错误attribute
3条回答

如果你打印dir(北美驯鹿)怎么办?你明白你的方法了吗?在

OP在评论中提到dir(caribou)给了他:

['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']

因此,肯定会看到caribou是一个模块其他任何东西通常都不会有__builtins__等。但是错误消息清楚地提到了Caribou instance,所以我想在dir调用和接下来的访问{}之间,一定发生了其他的事件。在

很明显,OP正在多次使用心爱的caribou标识符(在某些情况下,它绑定到一个caribu实例,但在其他时候它显然是一个模块,而且实际上OP确实提到了一个caribou.py,当导入时,它显然将成为一个名为caribou的模块)。在

所以我建议澄清命名。例如,使用

^{pr2}$

而不是将另一个值绑定到caribou名称,并将caribou的所有用法替换为caribou_instance的实例(而不是模块)。这可能会给您一个不同的错误,它可能会提供更多信息。在

您没有显示导入语句,也没有显示“caribou”实例的创建方式。我猜你是想通过北美驯鹿。上键朝上在驯鹿中,模块,而不是实例。在

相关问题 更多 >