как получить имя производного класса из базового класса

У меня есть базовый класс Personи производные классы Managerи Employee. Теперь я хотел бы знать, создан ли объект Managerили Employee.

Человек указан ниже:

from Project.CMFCore.utils import getToolByName
schema = getattr(Person, 'schema', Schema(())).copy() + Schema((TextField('FirstName', required = True, widget = StringWidget(label='First Name', i18n_domain='project')), TextField('Last Name', required = True, widget = StringWidget(label='Last Name', i18n_domain='i5', label_msgid='label_pub_city'))
class Manager(BaseContent):
  def get_name(self):
    catalog = getToolByName(self, "portal_catalog")
      people = catalog(portal_type='Person')
      person={}
      for object in people:
        fname = object.firstName
        lname = object.lastName
        person['name'] = fname+' '+ lname
        # if the derived class is Employee then i would like go to the method title of employee and if its a Manager then go to the title method of Manager
        person['post'] = Employee/Manager.title()
      return person

Для менеджера и сотрудников они похожи (сотрудник тоже похож, но некоторые разные методы)

from Project.Person import Person
class Manager(Person):
    def title(self):
      return "Manager"

Для Сотрудника название «Сотрудник». Когда я создаю Person, это либо Manager, либо Employee. Когда я получаю объект «человек», классом является «Человек», но я хотел бы знать, происходит ли он из производного класса «Менеджер» или «Сотрудник».

33
задан Lennart Regebro 31 July 2013 в 12:00
поделиться