Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python类___Python 2.7_Class_If Statement - Fatal编程技术网

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