私は基本クラスPerson
と派生クラスManager
とEmployee
を持っています。さて、私が知りたいのは、作成されたオブジェクトがManager
またはEmployee
であることです。基本クラスから派生クラス名を取得する方法
人はbelowsのように与えられる:従業員のために
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
のいずれかになります。 Personオブジェクトを取得すると、そのクラスはPersonですが、それが派生クラス 'Manager'か 'Employee'かどうかを知りたいと思います。
あなたは正確に何をしたいのかを示すいくつかのコードを載せることができますか? – SuperSaiyan