为什么有些信号是绑定的而另一些是未绑定的?

why some signals are bound and other unbound?

我从 PyQt 开始,正在考虑将信号分组到一个字典中(我将有几个/很多,我想在一个循环中初始化它们,而不是逐行执行此操作).

但是我注意到 dict 值是未绑定的,而裸变量是绑定的:

In [7]: from PyQt4 import QtCore

In [10]: class Update(QtCore.QObject):
   ....:     a = QtCore.pyqtSignal(object)
   ....:     b = {'x': QtCore.pyqtSignal(object)}
   ....:

In [11]: r = Update()

In [12]: r.a
Out[12]: <bound signal a of Update object at 0x02D1B170>

In [13]: r.b
Out[13]: {'x': <unbound signal >}

为什么不同?

a = QtCore.pyqtSignal(object) 创建属性

b = {'x': QtCore.pyqtSignal(object)}是在对象的属性中存储一个QtCore.pyqtSignal(object)对象,所以它本身不会是属性。