, если предполагается, что это не свойство вашего класса объектов, оно относится к функции __init__
этих классов.У вас есть свойство класса, которое будет унаследовано всеми объектами этого типа, подклассифицируя его.
Это может быть весьма полезно.Например:
for PyQt4.QtCore import QThread
class My_Thread(QThread):
all_instances = []
def __del__(self, *args, **kwargs):
all_instances.remove(self)
QThread.__del__(self, *args, **kwargs)
def __init__(self, *args, **kwargs):
QThread.__init__(self, *args, **kwargs)
my_locally_scoped_variable = None
self.all_instances.append(self)
Этот класс создает подкласс QThread, который соответствует его точному интерфейсу, за исключением того, что если я создаю thread = My_Thread(blahblahblah)
, я могу получить список всех других потоков этого типа, и любойподклассы это путем запроса thread.all_instances
, или даже thread.all_instances[-1].all_instances
.Однако вы должны обрабатывать удаление объекта, иначе ссылка всегда будет существовать для каждого элемента вашего класса и, следовательно, никогда не будет собираться мусором.
Также обратите внимание, что my_locally_scoped_variable
существует только в области действия __init__
и делаетне создавать собственность.