从 psychopy.visual.DotStim 继承时出现元类错误

metaclass error when inheriting from psychopy.visual.DotStim

我正在尝试像这样从 visual.DotStim 继承 class

class JitterDots(visual.DotStim):
...

我总是得到臭名昭著的元class错误:

TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

我知道你可以通过合并所有基础 classes 的元classes 来解决这个问题,但我看不到 DotStim 或其基础在哪里使用任何元classes , 所以我真的很困惑。

有什么建议吗?

这似乎对我有用:

from psychopy.visual import dot

class JitterDots(dot.DotStim):
    pass

与您的直接问题无关,但仍然是一个可能的陷阱: 我还注意到 DotStim 的某些 bases/parents 直接继承自 object,但从未通过 super() 初始化 它们的 父级 --尽管在 DotStim.__init__() 中调用了 super()。然而,"doing so will cause other classes' __init__ methods to not be called",根据https://fuhm.net/super-harmful/