目录
一、样例说明
- 类和对象(宠物类、狗类、猫类)
- 继承和多态(狗类和猫类继承自宠物类,并重写了
make_sound
方法) - 装饰器(
timer
装饰器用于计时函数执行时间) - 异常处理(
process_payment
函数模拟了异常处理,处理支付金额为非正数的情况)
二、实际样例
# 定义宠物类
class Pet:
def __init__(self, name):
self.name = name
def make_sound(self):
pass
# 定义狗类,继承自宠物类
class Dog(Pet):
def make_sound(self):
return "Woof!"
# 定义猫类,继承自宠物类
class Cat(Pet):
def make_sound(self):
return "Meow!"
# 定义装饰器,用于打印函数执行时间
def timer(func):
def wrapper(*args, **kwargs):
import time
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__} executed in {(end_time - start_time):.4f} seconds.")
return result
return wrapper
# 使用装饰器计时
@timer
def buy_pet(pet):
print(f"Bought {pet.name}, it says '{pet.make_sound()}'")
# 模拟异常处理
def process_payment(amount):
try:
if amount <= 0:
raise ValueError("Payment amount must be positive")
print(f"Payment of ${amount} processed successfully")
except ValueError as e:
print(f"Error: {e}")
# 主函数
def main():
# 创建宠物实例
dog = Dog("Buddy")
cat = Cat("Whiskers")
# 购买宠物
buy_pet(dog)
buy_pet(cat)
# 模拟异常处理
process_payment(50)
process_payment(0) # 触发异常
if __name__ == "__main__":
main()