- 说明:在特定时机被系统自动调用的函数,不需要手动调用
- 如:
__init__、__del__、__str__
- 如:
- 设置、获取、删除属性时自动触发的方法
class Person: # 获取不存在的属性时自动触发 # item就是不存在的属性的名字 def __getattr__(self, item): print(item) # 返回值就是属性的值 return '哈哈' # 设置属性时自动触发 def __setattr__(self, key, value): # key表示属性名,value表示属性值 print(key, value) # 手动保存属性 self.__dict__[key] = value # 删除对象属性时自动触发 def __delattr__(self, item): print(item) # 手动删除属性 self.__dict__.pop(item) # del self.__dict__[item] xiaoming = Person() xiaoming.name = '小明' print(xiaoming.name) del xiaoming.name # 对象的属性字典 print(xiaoming.__dict__)
- 练习:如何让对象支持字典一样的操作
练习
- 第一题
- 设计一个学生类
- 属性:姓名、学号、年龄、成绩
- 设计一个班级类
- 属性:班级代号,所有学生
- 要求:实现向班级中添加学生、删除学生、查看学生、按照指定条件排序
- 设计一个学生类
- 第二题
- 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌词)
- 提示:封装两个类:歌词类、歌词管理类
- 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌词)
标签: python
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~