我有一个基类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
。当我得到person对象时,类是Person,但我想知道它是来自派生类“经理”还是“员工”。
你能提出一些代码来证明你想要做什么吗? – SuperSaiyan 2012-07-10 07:07:11