Выбор объектов, принадлежащих определенному классу, при переборе списка объектов

#python #object #oop

Вопрос:

Я пытаюсь найти способ перебора списка объектов и определения того, к какому классу принадлежат объекты, некоторые объекты относятся к родительскому классу, а некоторые-к дочернему классу. Это то, чего я ожидаю, но понятия не имею, как заставить это работать.

 class example1():
     def __init__(self,attribute1,attribute2,attribute3,etc):
          self.attribute1 = attribute1
          self.attribute2 = attribute2
          *etc...*

class example2(example1):
     def __init__(self,newAttribute1,newAttribute2,newAttribute3,etc):
          self.newAttribute1 = newAttribute1
          self.newAttribute2 = newAttribute2
          *etc...*

*Code to create a list of a mix of both class example1 and example2*

for object in listOfObjects:
     if object *belongs to* example1:
         *do this*
     else:
          *do this instead*
 

Ответ №1:

Вы можете использовать isinstance встроенную функцию. Для вашего случая вы можете сделать что-то вроде:

 if isinstance(object, example1):
    ...
else:
    ...
 

Комментарии:

1. Также избегайте использования встроенных идентификаторов в качестве идентификатора. В вашем случае: for object in listOfObjects , object затеняет встроенный идентификатор object . Вы можете добавить к ним завершающее подчеркивание, чтобы предотвратить конфликты со встроенными именами.