问题描述
class person:
def __init__(self,firstname,lastname):
self.firstname = firstname
self.lastname = lastname
def fullname(self):
print(firstname,' ',lastname)
class student(person):
def __init__(self,lastname,grade):
self.grade = grade
super().__init__(firstname,lastname) # calling base constructor
def display_details(self):
super().fullname() # calling base class method
print('Grade ',self.grade)
std = student('James','Bond','10')
std.display_details()
错误: 打印(名字,'',姓氏) NameError: name 'firstname' 未定义
解决方法
在person类中,方法fullname、firstname和lastname没有定义。您在 init 方法中采用了这些参数,但在 fullname 方法中没有采用。您可以使用在 init 方法中定义的对象变量。
print(self.firstname,' ',self.lastname)