Мне хотелось бы получить несколько советов о том, как лучше извлечь объекты из конструкции 'self' по имени, чтобы объект возвращался для строки его типа.
Мой рабочий код представлен ниже.
def makeObjectTypeList(self):
objectList = []
allObjects = dir( self )
for att in allObjects:
test = getattr(self, att)
test1 = test.__class__.__name__
test2 = len( re.split( self.objectType, test1) )
if test2 > 1:
objectList.append( att)
self.objectList = objectList
Значением для self.objectType является строка 'QDial'. И я возвращаю все экземпляры объектов QDial из метода с помощью метода re.split () и проверки количества элементов в его результате (например, len (re.split ())> 1).
Мой вопрос заключается в том, как сделать это более компактным, используя 'enumerate' и т. Д. В режиме кодирования Python. Мой код является общим, так что я могу передать его «QLablel», «QTabWidget» и т. Д. В self.objectType и получить все такие экземпляры с согласованным типом. Но это кажется неуклюжим, и я пока не удосужился поймать случай несуществующего типа класса.