Python学习的自我理解和想法(19)

简介: 这是一篇关于Python面向对象学习的总结,基于B站千锋教育课程内容编写。主要涵盖三大特性:封装、继承与多态。详细讲解了继承(包括构造函数继承、多继承)及类方法与静态方法的定义、调用及区别。尽管开学后时间有限,但作者仍对所学内容进行了系统梳理,并分享了自己的理解,欢迎指正交流。

学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!
今天是学Python的第19天,学的内容是面向对象。开学了,时间不多,写得不多,见谅。
目录
1.面向对象的三大特性
(1).封装
(2).继承
(3).多态
2.继承
(1).简单使用
(2).有构造函数的继承
1.继承父类的构造方法
2.隐式继承父类的构造函数
3.调用结果
4.注意事项
(3).多继承语法
(1).语法
(2).写法
①.定义父类
②.定义母类
③.定义一个子类
④.运行
3.类方法和静态方法
(1).类方法
1.定义
2.通过类名调用类方法
3.cls关键字
4.通过对象调用类方法
5.类方法总结
(2).静态方法
1.定义
2.总结
(3).两者区别
总结


1.面向对象的三大特性

(1).封装

函数的定义, 类的定义,里面包含了属性和方法

(2).继承

将一些类公用的属性和方法提取出来,放到一个专门的父类中去,其他的子类直接继承这个父类后就可以直接使用这些属性和方法.

(3).多态

更多的体现在解决一些特殊问题时候的技巧.

2.继承

(1).简单使用

语法:在子类中继承父类只需要在定义子类时,参数列表中写上父类的名称即可.
image.png
打红圈的那个图标表示的是写了父类后出现的,你可以在重写了父类的成员之后的那边找到向下箭头的图标

(2).有构造函数的继承

先在子类的构造函数中继承父类的属性,然后再重构.

1.继承父类的构造方法

语法:father.init(AA,BB…)
image.png

2.隐式继承父类的构造函数

语法:super (son,self).init(AA,BB…)
image.png

3.调用结果

image.png

4.注意事项

1.object是所有类的父类,如果一个类没有显示指明它的父类,则默认为object.(可以省略不写).[一般写法为 class Person(object)]
2.python中的面向对象可以实现多继承.
image.png

(3).多继承语法

(1).语法

image.png

(2).写法

①.定义父类

image.png

②.定义母类

image.png

③.定义一个子类

image.png

④.运行

image.png

3.类方法和静态方法

(1).类方法

1.定义

使用@classmethod修饰器修饰的方法叫做类方法

2.通过类名调用类方法

image.png

3.cls关键字

我们发现这里自带了一个“cls”,为了证明它是否与self一样代表我们的当前类 ,我们可以使用布尔运算进行判断。
image.png

4.通过对象调用类方法

image.png

5.类方法总结

1.通过@classmethod装饰器修饰的方法叫做类方法;
2.类方法可以使用类名调用(推荐),对象也可以使用类方法;
3.没有self.在类方法中不可以使用其他对象的属性和方法(包括私有属性和类属性);
4.可以调用类属性和其他的类方法,(见上图,定义类属性name,使用cls.name调用类属性);
5.类方法中的cls是class的缩写,可以更换为其他的.一般使用cls来表示当前类;
6.cls表示的是当前类.

(2).静态方法

1.定义

通过@staticmethod装饰器修饰的方法叫做静态方法.
image.png

2.总结

1.通过@staticmethod装饰器修饰的方法叫做静态方法;
2.通过类名调用静态方法(推荐) 对象也可以调用静态方法;
3.静态方法中的形参中没有cls,在静态方法中不建议使用(类属性,类方法,静态方法);
4.静态方法一般是一个单独的方法,只是写在类中.

(3).两者区别

自我理解:类方法定义是必须把类作为第一个参数,可以访问实例变量,可以通过实例名或类名访问,静态方法不强制传入self和cls,它对类和实例都一无所知,不能访问类变量,也不能访问实例变量,只可以通过实例名或类名访问.

总结

这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

相关文章
|
15天前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
10天前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
|
16天前
|
Python
Python学习的自我理解和想法(26)
这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!
|
27天前
|
数据采集 数据挖掘 Python
Python学习的自我理解和想法(22)
本文记录了作者学习Python第22天的内容——正则表达式,基于B站千锋教育课程。文章简要介绍了正则表达式的概念、特点及使用场景(如爬虫、数据清洗等),并通过示例解析了`re.search()`、`re.match()`、拆分、替换和匹配中文等基本语法。正则表达式是文本处理的重要工具,尽管入门较难,但功能强大。作者表示后续会深入讲解其应用,并强调学好正则对爬虫学习的帮助。因时间有限,内容为入门概述,不足之处敬请谅解。
|
23天前
|
索引 Python
Python学习的自我理解和想法(24)
本文记录了学习Python操作Excel的第24天内容,基于B站千锋教育课程。主要介绍openpyxl插件的使用,包括安装、读取与写入Excel文件、插入图表等操作。具体内容涵盖加载工作簿、获取单元格数据、创建和保存工作表,以及通过图表展示数据。因开学时间有限,文章简要概述了各步骤代码实现,适合初学者参考学习。如有不足之处,欢迎指正!
|
20天前
|
Python
Python学习的自我理解和想法(25)
这是一篇关于Python操作Word文档(docx)的教程总结,基于B站千锋教育课程学习(非原创代码)。主要内容包括:1) docx库插件安装;2) 创建与编辑Word文档,如添加标题、段落、设置字体样式及保存;3) 向新或现有Word文档插入图片。通过简单示例展示了如何高效使用python-docx库完成文档操作。因开学时间有限,内容精简,后续将更新列表和表格相关内容。欢迎指正交流!
|
27天前
|
Python
Python学习的自我理解和想法(23)
本文记录了学习Python正则表达式的第23天心得,内容基于B站麦叔课程。文章分为三个部分:1) 正则表达式的七个境界,从固定字符串到内部约束逐步深入;2) 写正则表达式的套路,以座机号码为例解析模式设计;3) 正则表达式语法大全,涵盖字符类别、重复次数、组合模式、位置、分组、标记、特殊字符和替换等知识点。总结中表达了对知识的理解,并欢迎指正。
|
2月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
12天前
|
数据采集 安全 BI
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
50 11
|
2月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
103 28