#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
. Вы можете добавить к ним завершающее подчеркивание, чтобы предотвратить конфликты со встроенными именами.