类和对象

    • 面向对象的概述
    • 对象
  • 面向向对象程序设计的特点
    • 类的定义和使用
        • 魔术方法
      • 创建类的成员并访问
        • 访问限制(也可以说是私有成员和公有成员)
        • 属性
          • 创建用于计算的属性
          • 为属性添加安全保护机制
        • 方法
        • 类与类之间的关系
          • 依赖(关联)
          • 组合(聚合)
        • 继承
        • 方法重写
        • 枚举类
          • 枚举类的派生类

面向对象的概述

我的这篇==学习笔记==来源于作者--- 帅的感动全宇宙

帅的感动全宇宙

这也是我最近上的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万字学习笔记相关推荐

  1. python一般的类有三部分组成_Python学习笔记总结(三)类

    一.类简单介绍 1.介绍 类是Python面向对象程序设计(OOP)的主要工具,类建立使用class语句,通过class定义的对象. 类和模块的差异,类是语句,模块是文件. 类和实例 实例:代表程序领 ...

  2. python中的类和对象

    一.类和对象 类和对象和概念 类:共性事物的抽象,是对某一类具有共同事物的描述,是具有相同属性和方法的集合 对象:类的实例,是共性事物的一个体现,是这类事物中的每个个体 总结: 类是对象的模板,对象是 ...

  3. python中的类与对象

    参考文章:Python的类和对象 入门级讲解(简单粗暴)

  4. Python中文件操作和文件夹操作的学习笔记

    目录 1 前言 2 工作目录设置 设置工作目录: 获取当前运行文件目录 将工作目录重置为当前运行文件的父目录 遍历文件夹中所有的子文件(包含子文件.孙文件): 3 判断文件(夹)是否存在 4 文件读写 ...

  5. python中的类和对象2

    老王开枪完成版: class Ren:def __init__(self,name):self.name = nameself.xue = 100self.qiang = Nonedef __str_ ...

  6. python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解

    一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...

  7. python中csv文件把成绩加入_【学习笔记】python3中csv文件使用

    1. reader=csv.reader(f, delimiter=','):按行读取数据,reader为生成器,读取的每行数据为列表格式,可以通过delimiter参数指定分隔符. import c ...

  8. python中类和对象的内容_python中的类和对象

    摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...

  9. python类和对象介绍_python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  10. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

最新文章

  1. DPDK rte_mbuf
  2. 《笨办法学python》(《learn python the hard way 3thrd》)习题48(ex48)的代码实现
  3. bootstrap4 左侧导航栏 优秀 大气_Axure导出html没有左侧菜单栏(导航栏)?——Mac Safari...
  4. 让电脑开机时直接登录
  5. python笔记(五) - 获取对象的引用
  6. ZooKeeper的安装及部署
  7. 转载:::::简单分享一个轻量级自动化测试框架目录结构设计
  8. 201809-1—卖菜
  9. 一个mapper接口有多个mapper.xml 文件_MyBatis 源码解析:映射文件的加载与解析(上)
  10. 解决Weblogic与Hibernate的jar冲突
  11. 使用NekoHtml处理网页(删除Style标签)
  12. 围棋知名AI-KataGo 下载分享
  13. ENVI5.1 进行监督分类流程化工具时(classification workflow)界面显示不全的问题解决办法
  14. 112家IT网络公司薪水一览表
  15. Packet Tracer 和 Wirshark 抓取数据包
  16. 谷歌gmail注册入口_如何阻止Gmail将事件添加到Google日历
  17. 游戏史上80重要创新(原资料来自17173)
  18. 计算机远程桌面连接有几种方式,远程桌面连接的2种方法
  19. 供应链管理最重要的竟然是它
  20. vue3学习路程1——创建vue3项目

热门文章

  1. activiti7入门教程
  2. 西工大NOJ数据结构实验——1.1合并有序数组
  3. a标签点击中文文件名乱码_a 标签下载文件并解决中文乱码问题
  4. 《深入理解高并发编程:JDK核心技术》-冰河新书上市
  5. Redhat7在线编译安装gcc7.5
  6. FRW辐轮王MARMOT土拨鼠世界顶级自行车品牌排行榜
  7. 线性代数之 向量的内积,外积,长度,正交与正交矩阵
  8. AS连接网易mumu、夜神等模拟器
  9. fully qualified name
  10. python+django地铁站自动售票系统-火车票售票系统