Python 2.7 Python类__
我的工作:这是一项任务Python 2.7 Python类__,python-2.7,class,if-statement,Python 2.7,Class,If Statement,我的工作:这是一项任务 class Person(object): def __init__(self, name): self.name = name def __str__(self): if isinstance(person1, Lecturer): return "Name: " + self.name + "\tOccupation: " + self.occupation elif isins
class Person(object):
def __init__(self, name):
self.name = name
def __str__(self):
if isinstance(person1, Lecturer):
return "Name: " + self.name + "\tOccupation: " + self.occupation
elif isinstance(person2, Student):
return "Name: " + self.name + "\tStudent Number: " + self.studentNumber
class Lecturer(Person):
def Occupation(self, occupation):
self.occupation = occupation
class Student(Person):
def StudentNumber(self, studentNumber):
self.studentNumber = studentNumber
person1 = Lecturer("Elisha Nsemwa")
person2 = Student("Fabian Hamza")
person1.Occupation("Senior Lecturer")
person2.StudentNumber("HD5603")
print person1
print person2
我的输出:
Name: Elisha Nsemwa Occupation: Senior Lecturer
"assignment.py", line 26, in <module>
print person2
"assignment.py", line 7, in __str__
return "Name: " + self.name + "\tOccupation: " + self.occupation
AttributeError: 'Student' object has no attribute 'occupation'
姓名:Elisha Nsemwa职业:高级讲师
“assignment.py”,第26行,在
印刷人员2
“assignment.py”,第7行,在__
返回“名称:”+self.Name+“\t帐户:”+self.occulation
AttributeError:“学生”对象没有属性“职业”
person1执行if部分,这可以打印输出,现在我的错误是person2执行if而不是elif;如何在中更正此问题
def __str__(self):
if isinstance(person1, Lecturer):
return "Name: " + self.name + "\tOccupation: " + self.occupation
elif isinstance(person2, Student):
return "Name: " + self.name + "\tStudent Number: " + self.studentNumber
您正在测试person1
和person2
,因此isinstance(person1,讲师)
始终为真。您想知道的是self
的实例:
... def __str__(self):
... if isinstance(self, Lecturer):
... return "Name: " + self.name + "\tOccupation: " + self.occupation
... elif isinstance(self,Student):
... return "Name: " + self.name + "\tStudent Number: " + self.studentNumber
...
...
>>> print person1
Name: Elisha Nsemwa Occupation: Senior Lecturer
>>> print person2
Name: Fabian Hamza Student Number: HD5603