面向对象编程OOP

01 方法__repr__()和__str__()

__repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试

__rept__()和__str__()方法区别

在控制台交互测试时:

输入b返回__rept__()方法结果

输入print(b) 返回__str__()方法结果,如果没有定义__str__()方法  则用__rept__()结果代替__str__()方法结果

__rept__()   打印信息一般用于开发人员测试

__str__()    打印信息一般用于用户查看

例子:Book类定义

控制台交互

02 全局成员变量

在Python里面定义了一个属于类的成员(相当于Java中的静态变量用static修饰内容)、不属于实例的成员如例子中的count,即可以用类名调用,也可以用类的实例调用。这样比较乱,我们尽量不要用实例名调用。

如果真的用实例名引用了全局变量,那么实例名引用的即book3.count的count其实是属于book3的,该count如果发生改变只会影响book3的count,不会影响类Book的count,这么做很容易混淆,所以不推荐

03 类函数——理解为静态函数

类函数定义

类里面的函数:一部分是带有self,一部分没有带self,其中有self的一般都与实例相关,没有self一般与类相关与实例无关,有三种方式创建这种类函数即与实例无关只与类有关的函数。

方式1  python2传承下来——该方式不方便使用,可以忽略

函数定义

函数调用

方式2——python3里面的静态函数可以用该种方式

该方式与方式1的区别就是,定义类函数时候不要加参数,参数为空,但是会有提示错误信息,注意提示是编辑器提示的不是python语法提示, 所以千万不要根据提示输入参数,一定不要写self  这样写的目的就是该函数不让实例来调用,实现类函数的意义

对于类函数static_method()方法,红色波浪线的提示如下

对于该提示信息的解释如下

方式3:用装饰器,也不建议加

加装饰器和不加的区别

加了就可以被实例调用了,但是不建议加,因为我们目的就是不让实例调用

加的意义就是该函数本质上是与类相关的,不过加了装饰器之后既可以被类调用也可以被实例调用

在方法2的基础上,增加一个@staticmethod

函数调用

04 装饰器的简单讲解

例子:定义一个student类,用函数get_age()动态的获取学生的年龄

业务背景:下面定义了一个student,需要学生输入出生日期,但是现在想获得该学生的年龄,因为年龄是变化的,所以用函数get_age()动态的获取学生的年龄

定义一个student类,用函数get_age()动态的获取学生的年龄

结果

例子:刚才上面例子里面定义的是函数get_age(),下面例子里面用装饰器代替函数

其实装饰器本身就是函数,只不过使用起来更像字段

用装饰器的好处,我们可以进一步过滤,比如说我们让这个年龄不允许赋值,不允许删除,下面用设置器和删除器实现了不允许赋值和不允许删除的功能,会抛出异常

调用赋值会抛异常

python oop编程_23 Python - 面向对象编程OOP相关推荐

  1. python归一化 增大差异_简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性pr ...

  2. Python学习笔记:16 面向对象编程入门

    文章目录 类和对象 面向对象的过程 定义类 创建和给对象发消息 打印对象 面向对象编程的支柱 经典案例 例子1:定义一个类描述数字时钟,可以显示时/分/秒,可以运转(走字) 例子2:扑克游戏:四个玩家 ...

  3. Python基础十五:面向对象编程四:高级特性

    Python基础十五:面向对象编程四:高级特性 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Em ...

  4. Python开发系列课程(9) - 面向对象编程基础

    面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法. 把一组数 ...

  5. plc 编程 c语言编程实例,PLC面向对象编程和梯形图编程,谁OUT了?

    在工业自动化领域,梯形图逻辑仍然是最常用的编程语言之一,但对于更加复杂的控制对象,面向对象编程不失为一种高效率的方式.下面先来谈谈面向对象编程: 面向对象编程是计算机高级语言的一种先进的编程模式,在工 ...

  6. python面相对象编程指南_Python面向对象编程指南

    抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...

  7. python和对象复习_【Python复习巩固 Day4】面向对象编程

    面向对象编程,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象 类和实例 clas ...

  8. 简明Python教程学习笔记_6_面向对象编程

    面向对象编程:https://www.liaoxuefeng.com/wiki/897692888725344/923030496738368 面向对象高级编程:https://www.liaoxue ...

  9. python 第13章:面向对象编程

    2019独角兽企业重金招聘Python工程师标准>>> 1. 类是对象的定义,而实例是"真正的产物",它存放了类中所定义的对象的具体信息 方法:方法为类的属性,除 ...

最新文章

  1. r240显卡 linux,NV发布260.19.36正式版Linux驱动 270系列将至
  2. Eclipse4.4设备egit插件提交本地项目代码到远程仓库
  3. 蓝驰创投朱天宇:用10年尺度看 AI 创业,如何发现独角兽 | 新智元专访
  4. Windows中SQLite的编译及编程
  5. [Flex]Flex SDK 4(Gumbo)更方便的自定义样式、自定义SparkSkin(三)
  6. linux下使用find xargs grep查找文件及文件内容
  7. 记住,你现在的操作是什么
  8. Repeater 双向排序
  9. 安装python进度条不动了_TensorFlow(一):使用Anconda安装TensorFlow
  10. 【李宏毅2020 ML/DL】P81 Generative Adversarial Network | Intelligent Photo Editing
  11. IOS 百度地图集成
  12. Silverlight与微软技术:微软抛弃Silverlight了吗?
  13. 高程(三)--- Date
  14. 单片机数字时钟/闹钟
  15. 【2019年5月6日】指数估值排名
  16. SAP 各种记账凭证的更改冲销
  17. 第18届中国智能家居主题沙龙在北京成功举办
  18. 语音识别-音素的上下文建模
  19. 紫外线传感器 韩国GENICOM进口 GUVA-T11GD-L 全波段检测,原厂渠道
  20. python求阿姆斯特朗数

热门文章

  1. charles都踩过哪些坑_野路子14年 不如“缠论”1年 收益翻20倍
  2. 用python玩转数据测试与作业_大学mooc用Python玩转数据章节测试答案
  3. mysql快捷键设置_MySQL快捷命令
  4. android onresume函数,android – 使用onResume()刷新活动
  5. helm安装_安装 helm 包管理工具
  6. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...
  7. 帝国 listenews.php,帝国cms7.2后台信息列表页批量添加tags
  8. MySQL错误:The user specified as a definer (XXX@XXX) does not exist (1449错误)最简解决方案...
  9. 关于mysql中select出数据未排序问题
  10. ubuntu 16.04 nfs服务的搭建