12 面向对象三大特征
- 1 封装:提高程序的安全性。
将数据 (属性) 和行为 (方法) 包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。
在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类访问,前边使用两个‘____’。 - 2 继承:提高代码的复用性。
语法格式:class 子类类名(父类1,父类2,...):
如果一个类没有继承任何类,则默认继承object;
Python支持多继承;
定义子类时,必须在其构造函数中调用父类的构造函数。
方法重写:
如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;
子类重写后的方法中可以通过super().xxx0调用父类中被重写的方法
plaintext # 方法重写 def info(self): super().info() # 调用父类被重写的方法 print('\t学号:{}'.format(self.stuNo))
- 3 多态:提高程序的可扩展性和可维护性。简单地说,即便不知道对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象的方法。
- 4 特殊方法和特殊属性
print(c.__dict__) # 实例对象的属性字典 print(C.__dict__) print('-'.center(20, '*')) print(c.__class__) # <class '__main__.C'>输出了对象所属的类 print(C.__bases__) # C类的父类类型的元素 print(C.__base__) # 类的基类 print(C.__mro__) # C的层次结构 print(A.__subclasses__()) # 子类列表 class Student: def __init__(self, name): self.name = name def __add__(self, other): return self.name+'\t'+other.name stu1 = Student('Jack') stu2 = Student('Tom') print(stu1 + stu2) # 实现了两个对象的加法(在Student类中 重新编写__add__()特殊的方法) print(stu1.__add__(stu2)) ```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现