python面向对象学习
2023-09-14 09:01:25 时间
1.1基础
1.对象:对象是数据和功能(函数)的集合体
2. 类:类是具有共同属性(数据、函数)的对象的总称
注:先定义类后实例化对象
3. 属性访问:可以通过__dict__访问属性的值
4. 属性查找和方法绑定:对象的名称空间里只存放着对象独有的属性,而对象们相似的属性是存放于类中的。对象在访问属性时,会优先从对象本身的__dict__中查找,未找到,则去类的__dict__中查找
1.2封装
1.隐藏属性(__)
2.开放接口
3.property
1.3继承和派生
1.通过类的内置属性__bases__可以查看类继承的所有父类
2.属性查找
3.广度优先
4.Pyton Mixins机制
5.子类可以派生出自己新的属性,在进行属性查找时,子类中的属性名会优先于父类被查找
6.组合
1.4多态和鸭子类型
1.多态指的是一类事物有多种形态
2.多态性的本质在于不同的类中定义有相同的方法名,这样我们就可以不考虑类而统一用一种方式去使用对象,可以通过在父类引入抽象类的概念来硬性限制子类必须有某些方法名
import abc
# 指定metaclass属性将类设置为抽象类,抽象类本身只是用来约束子类的,不能被实例化
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod # 该装饰器限制子类必须定义有一个名为talk的方法
def talk(self): # 抽象方法中无需实现具体的功能
pass
class Cat(Animal): # 但凡继承Animal的子类都必须遵循Animal规定的标准
def talk(self):
pass
cat=Cat() # 若子类中没有一个名为talk的方法则会抛出异常TypeError,无法实例化
3.只需要制造出外观和行为相同对象,同样可以实现不考虑对象类型而使用对象,这正是Python崇尚的“鸭子类型”(duck typing
相关文章
- python语法join函数
- Python学习--17 访问数据库
- Python快速学习05:面向对象
- 第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—meta属性返回指定值给回调函数—Scrapy内置图片下载器
- python文件目录操作
- Python生成随机数组的方法小结
- 【学习总结】Python-3-round()函数的奇进偶弃的问题
- Python学习笔记之常用函数及说明
- python数据分析岗的学习路线该如何规划?
- Python语言学习:Python语言学习之函数(定义&调用函数/常用内置函数如filter&map/内嵌函数/闭包/匿名函数如lambda&map)的简介、案例应用之详细攻略
- Python语言学习:Python语言学习之数据类型/变量/字符串/操作符/转义符的简介、案例应用之详细攻略
- Python编程语言学习:包导入和模块搜索路径(包路径)简介、使用方法(python系统环境路径的查询与添加)之详细攻略
- 100天精通Python(可视化篇)——第79天:matplotlib绘制不同种类炫酷折线图代码实战(网格、趋势、对比、百分比、多条折线、堆积、百分比堆积、多坐标子图、3D折线图)
- 100天精通Python(数据分析篇)——第62天:pandas常用统计方法大全(含案例)
- 37岁接触Python,危机中抓住新机,3年搭建Python金融“金字塔”
- Python制作吃鸡各数据资料查询助手,带你做理论王者~
- Python爬虫基础:scrapy 框架结构及scrapy.Spider
- python将图片转为矢量图
- ❤️爆肝十二万字《python从零到精通教程》,从零教你变大佬❤️(建议收藏)
- 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!
- Python Flask框架学习22:Flask SQLAlchemy
- Python学习78:XML
- Python学习44:面向对象高级编程
- Python学习21:切片
- Principle of Computing (Python)学习笔记(5) BFS Searching + Zombie Apocalypse
- python web py入门(46)- jQuery 事件 - $( document ).ready与$( window ).on( "load"的区别
- python-Pickle【转载】
- Python 工匠:使用数字与字符串的技巧学习笔记
- python 爬虫可视化函数,可以先看看要爬取的数据是否存在
- Python数模笔记-模拟退火算法(2)约束条件的处理
- 【Python中面向对象的学习】
- 老司机教你如何学习Python数据分析
- OpenCV-Python学习(15)—— OpenCV 鼠标操作和响应(cv.setMouseCallback)