本题考查主要有两点
1:try...except...异常的捕获处理,这里一开始定义类的时候,没有age属性,因此在实例输出age时属性时必定会出现 属性不存在的异常(AttributeError)报错。在printclass 函数中捕获这个异常,打印age 属性不存在
2.考查动态实例属性的添加,由于原本类定义中 属性age不存在,因此可在实例e上动态添加属性age,此属性只属于该实例。动态添加实例属性方法:e.age = age ps:e是类Employee的实例对象
class Employee: def __init__(self,name,salary) -> None: self.name = name self.salary = salary def printclass(self): try: print(f"{self.name}'salary is {self.salary}, and his age is {self.age}") except AttributeError: print("Error! No age") # 数据输入:姓名,薪水,年龄 name = input() salary = int(input()) age = int(input()) # 先使用name和salary 创建实例e e = Employee(name,salary) e.printclass() # 直接在实例e上添加属性年龄age e.age = age e.printclass()