PySide: object.__setattr__ raising "TypeError: can't apply this __setattr__ to MyObject object" for python versions > 3.8

问题描述 投票:0回答:0

升级 python 后,当我在 PySide6 对象的子类中调用

object.__setattr__
时,出现“类型错误:无法将此 setattr 应用于 MyObject 对象”。 这是重现错误的代码

from PySide6 import QtWidgets

class A(QtWidgets.QGraphicsWidget):

    def __setattr__(self, name, val):
        object.__setattr__(self, name, val)

if __name__ == '__main__':
    a = A()
    a.foo = 3

不确定这是来自 python、PySide 还是我遗漏的其他东西的错误或预期行为。为什么会出现此错误,如何解决?

我尝试在 python 3.8.2 中为 PySide2 和 PySide6 运行上面的代码(我也测试了一些颠覆)一切正常。 它对于更新的 python 版本失败(还测试了不同的 PySide 和 python 3.9.13、3.10.13 和 3.11.2) 我在 Windows 10 上。

我发现的关于此类错误的其他类似问题仅与this issue有关,该问题是在python 3.8.4中引入并在3.8.5中修复的

python pyside pyside2 pyside6
© www.soinside.com 2019 - 2024. All rights reserved.