本题考查主要有两点
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()

京公网安备 11010502036488号