我不断收到以下错误:AttributeError: Caribou instance has no attribute 'on_key_up'问题是,我很确定我确实具有该属性...以下是我的代码(来自caribou.py)的摘录: def on_key_up(self, event): if event.event_string == "Shift_R": _r_shift_down = False elif event.event_string == "Shift_L": _l_shift_down = False这是导致错误的行:pyatspi.Registry.registerKeystrokeListener(caribou.on_key_up, mask=None, kind=(pyatspi.KEY_RELEASED_EVENT,))有人看到我在做什么错吗?谢谢!编辑:糟糕-这是我创建驯鹿实例的方式:caribou = Caribou() 最佳答案 OP在评论中提到dir(caribou)给他:['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']因此,可以肯定地看到caribou是一个模块-其他通常没有__builtins__等。错误消息却清楚地提到了Caribou instance-因此我想在这之间调用,然后尝试访问dir。显然,OP正在广泛使用该受欢迎的caribou.on_key_up标识符(在某些时候它绑定到一个Caribou实例,但是在其他时候,它显然是一个模块,并且确实,OP确实提到了一个caribou,显然它将导入后成为名为caribou.py的模块)。因此,我的建议是澄清命名。例如使用caribou_instance = Caribou()而不是将另一个值绑定到caribou名称,并用caribou替换应该用作实例(而非模块)的所有caribou用法。这可能会给您带来不同的错误,可能会提供更多信息。关于python - 拥有属性后,为什么会出现AttributeError?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2349365/ 10-12 22:12