python中的(类和对象)1.5万字学习笔记
类和对象
- 面向对象的概述
- 对象
- 类
- 面向向对象程序设计的特点
- 类的定义和使用
- 魔术方法
- 创建类的成员并访问
- 访问限制(也可以说是私有成员和公有成员)
- 属性
- 创建用于计算的属性
- 为属性添加安全保护机制
- 方法
- 类与类之间的关系
- 依赖(关联)
- 组合(聚合)
- 继承
- 方法重写
- 枚举类
- 枚举类的派生类
面向对象的概述
我的这篇==学习笔记==来源于作者--- 帅的感动全宇宙 |
帅的感动全宇宙
这也是我最近上的python课,在夸一遍作者大大写的真好,还是作者写的简单易懂,对于我这种大脑理解来说还是super cool,我并没有去全篇复制,98%都是我自己一个字一个字敲出来的,同时还加上我自己的理解和一些代码。作为一个自己的历史记录
帅的感动全宇宙
如果介意的话,可以去作者那里去看看。
什么叫做面向对象?
所谓面向对象其实就是把属性和方法封装起来,以供重复调用。
对于人我们可以有:
人的属性:姓名,年龄,性别
人的方法:唱,跳,rap
我们在没有学习面向对象的时候会这样定义:
伪代码:
姓名="小红"
年龄=18
性别="女"
def 唱():print("唱的真好听")
def 跳():print("跳的真不错")
def rep():print("rap有点水平")
伪代码:
姓名="小明"
年龄=18
性别="男"
def 唱():print("唱的没小红的一半好")
def 跳():print("跳的也没小红的一半好")
def rep():print("rap一般")
现在我们写完两个人的,但是我们要写多个人怎么办?
这个时候我们就可以把它们(代码)抽象出来,变成一个固定的格式,用的时候直接拿过来用就可以了.
我们可以写出以下代码:
人:属性:姓名年龄性别方法:唱跳rap
我们可以看出,只要是人,就可以用有着写属性和方法。现在有多个人让我们去写,而这多个人共有的特征就是:拥有人的属性和方法
在python中我们就可以写成
class Person:def __init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdef sing(self):print(f"{self.name}唱的真好听")
def dump(self):print(f"{self.name}跳的真不错")
def rap(self):print(f"{self.name}世界第一")
可以看出和上面哪一点不同吗?
我们在之前的属性和方法前面套了一个class
然后从下面的代码就可以看出神奇之处
xiaohong = Person("小红",18,"女")
xiaohong.sing()
xiaohong.dump()
xiaohong.rap()
#结果:
小红唱的真好听
小红跳的真不错
小红世界第一
然后是小明的代码
xiaoming = Person("小明",18,"男")
xiaoming.sing()
xiaoming.dump()
xiaoming.rap()
#结果:
小明唱的真好听
小明跳的真不错
小明世界第一
再然后再写几个
zhoujielun = Person("周杰伦",28,"man")
zhangzifeng= Person("张子枫",21,"women")
xuezhiqian = Person("薛之谦",32,"man")
linjunjie = Person("林俊杰",25,"man")
连续写了四个,而且他们四个都可以进行唱,跳,rap
你要用之前的代码写,现在都好几十行了,而这里就短短四行
这就是面向对象的魅力。作者大大(帅的感动全宇宙)讲的真不错,在这里给他点个赞
我们再来回顾一开始的那段话,
什么叫做面向对象?
所谓面向对象其实就是把属性和方法封装起来,以供重复调用。
对象
什么叫做对象?
对象就是实际生活中的具体事物。比如车是一个对象,小狗大黄是一个对象,我的小米手机也是一个对象
有一句话说到:
python中一切皆对象,Linux中一切皆文件
类
什么叫做类?
类是封装对象的属性和行为的载体
类是对象的抽象。上面我们说对象就是具体的事物。
比如我的车,你的车都是对象,而对于车都有一个统一的标准,它们有四个轮子,一个方向盘,四个座椅。后面我们再说车的时候,就会知道它会有我们所说的那些属性和方法,它们都是车,车就是这个类。
当人们生产一台计算机的时候,并不是先生产主机,然后生产显示器,再生产键盘,鼠标,主板,处理器等,它们不是顺序执行的,而是分别生产设计制造的,最后再组装起来。这些部件根据事先设计好的接口来连接,以便协调工作,良好的运行
每一个对象都有一个类型,类是创建对象实列的模板是对对象的抽象和概括,它包含对所创建对象的属性描述和行为特征的定义。 |
例如,我们在马路上看到的汽车都是一个个汽车对象,它们通通归属于一个汽车类,那么车身颜色就是给车类的属性,开动是它的方法,该保养或者该报废了就是它的事件。
总结:类是对象的抽象,对象是类的具体实列。
面向向对象程序设计的特点
面向对象的三大特性:封装,继承,多态
封装:
封装就是将一个数据和与这个数据有关的操作集合放在一起,形成一个实体—对象,用户不必知道对象行为的实现细节,之后需要根据对象提供的外部特性接口访问对象那个就好。
我们使用电视遥控器,只需要知道按上下就可以进行换台操作,而不知道遥控器里面是怎么具体实现的,这就是封装。所谓封装,就是把具体实现隐藏起来,别人使用的时候只给固定的结构进行调用。有效避免了外部事物对它产生的影响,大大减轻软件开发过程中查错的工作量,减少了排错的工作量提高了代码的重(反复利用)用性,
继承:
继承跟我们现实生活中的继承类似,你爸有好几套房(我爸没有房,还得靠我自己
python中的(类和对象)1.5万字学习笔记相关推荐
- python一般的类有三部分组成_Python学习笔记总结(三)类
一.类简单介绍 1.介绍 类是Python面向对象程序设计(OOP)的主要工具,类建立使用class语句,通过class定义的对象. 类和模块的差异,类是语句,模块是文件. 类和实例 实例:代表程序领 ...
- python中的类和对象
一.类和对象 类和对象和概念 类:共性事物的抽象,是对某一类具有共同事物的描述,是具有相同属性和方法的集合 对象:类的实例,是共性事物的一个体现,是这类事物中的每个个体 总结: 类是对象的模板,对象是 ...
- python中的类与对象
参考文章:Python的类和对象 入门级讲解(简单粗暴)
- Python中文件操作和文件夹操作的学习笔记
目录 1 前言 2 工作目录设置 设置工作目录: 获取当前运行文件目录 将工作目录重置为当前运行文件的父目录 遍历文件夹中所有的子文件(包含子文件.孙文件): 3 判断文件(夹)是否存在 4 文件读写 ...
- python中的类和对象2
老王开枪完成版: class Ren:def __init__(self,name):self.name = nameself.xue = 100self.qiang = Nonedef __str_ ...
- python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解
一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...
- python中csv文件把成绩加入_【学习笔记】python3中csv文件使用
1. reader=csv.reader(f, delimiter=','):按行读取数据,reader为生成器,读取的每行数据为列表格式,可以通过delimiter参数指定分隔符. import c ...
- python中类和对象的内容_python中的类和对象
摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...
- python类和对象介绍_python中的类,对象,方法,属性等介绍
注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...
- python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...
python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...
最新文章
- DPDK rte_mbuf
- 《笨办法学python》(《learn python the hard way 3thrd》)习题48(ex48)的代码实现
- bootstrap4 左侧导航栏 优秀 大气_Axure导出html没有左侧菜单栏(导航栏)?——Mac Safari...
- 让电脑开机时直接登录
- python笔记(五) - 获取对象的引用
- ZooKeeper的安装及部署
- 转载:::::简单分享一个轻量级自动化测试框架目录结构设计
- 201809-1—卖菜
- 一个mapper接口有多个mapper.xml 文件_MyBatis 源码解析:映射文件的加载与解析(上)
- 解决Weblogic与Hibernate的jar冲突
- 使用NekoHtml处理网页(删除Style标签)
- 围棋知名AI-KataGo 下载分享
- ENVI5.1 进行监督分类流程化工具时(classification workflow)界面显示不全的问题解决办法
- 112家IT网络公司薪水一览表
- Packet Tracer 和 Wirshark 抓取数据包
- 谷歌gmail注册入口_如何阻止Gmail将事件添加到Google日历
- 游戏史上80重要创新(原资料来自17173)
- 计算机远程桌面连接有几种方式,远程桌面连接的2种方法
- 供应链管理最重要的竟然是它
- vue3学习路程1——创建vue3项目