Tôi có một lớp cơ sở Person
và các lớp dẫn xuất Manager
và Employee
. Bây giờ, những gì tôi muốn biết là đối tượng được tạo là Manager
hoặc Employee
.cách lấy tên lớp có nguồn gốc từ lớp cơ sở
Người được đưa ra như 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
Đối với quản lý và người lao động họ giống như (nhân viên cũng tương tự nhưng một số phương pháp khác nhau)
from Project.Person import Person
class Manager(Person):
def title(self):
return "Manager"
Đối với người lao động tiêu đề là 'nhân viên' . Khi tôi tạo một Person
, hoặc là Manager
hoặc Employee
. Khi tôi nhận được đối tượng người, lớp đó là Person nhưng tôi muốn biết liệu nó có phải là từ lớp 'Manager' hoặc 'Employee'.
Bạn có thể đưa ra một số mã trình bày những gì bạn muốn làm chính xác không? – SuperSaiyan