用Python# 学生类 有学习和娱乐2个方法 #大学生类 要求娱乐方法实现有变化 # 私有属性余额__bank 用装饰器保护(不同名函数)外部能判断够不够今年生活费(3w)能进行扣费操作(-500)能判断当前余额比扣费前少了多少 不能删除私有属性
时间: 2024-10-26 10:03:43 浏览: 14
在Python中,你可以创建一个名为`Student`的基类,它包含`学习`和`娱乐`两个通用方法,然后创建一个名为`大学生`的子类,对娱乐方法进行特定实现。为了保护私有属性`__bank`(这里是银行余额),通常我们会使用双下划线(`__`)作为前缀,使其变为私有的。同时,我们可以使用装饰器(如`@property`)来提供访问余额的公共接口,并通过`setter`来控制余额的操作。
```python
class Student:
def 学习(self):
pass
def 娱乐(self):
pass
class 大学生(Student):
def __init__(self, bank):
self.__bank = bank
# 使用装饰器检查余额和扣费
@property
def 生活费足够(self):
return self.__bank >= 30000
@生活费足够.setter
def 生活费足够(self, is_enough):
if is_enough:
self.__bank -= 500
else:
print("生活费不足")
def 娱乐(self):
if self.生活费足够:
self.__bank -= 500
change = self.__bank - (self.__bank + 500)
print(f"娱乐花费后余额:{self.__bank}, 比之前减少了:{change}")
else:
print("无法支付娱乐费用")
# 示例
student = 大学生(40000)
student.娱乐() # 如果余额大于3万,会扣除500元
```
阅读全文