为什么不能更改从QWidget派生的类的类变量?

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

为什么要这样的代码...

from PySide2.QtWidgets import QWidget


class A:
    attribute = None


class Q(QWidget):
    attribute = None


if __name__ == "__main__":
    print(A.attribute)
    A.attribute = 42
    print(A.attribute)

    print(Q.attribute)
    Q.attribute = 42
    print(Q.attribute)

...产生此输出...

None
42
None
None

...代替此输出?

None
42
None
42

为了获得第二个输出,需要进行哪些更改?

我对此进行了测试:

  • PySide2:5.9.0〜a1
  • Python:3.7.3
  • OS:Windows和Linux
python pyside2 class-variables
1个回答
-2
投票

因为在Q中定义属性的方式不是对象属性。应该是:

class Q(QWidget):
    self.attribute = None

这将覆盖或设置属性

© www.soinside.com 2019 - 2024. All rights reserved.