2022.08.15 DAY31

面向对象三大特征

封装

  • 隐藏对象的属性和实现方法,只对外提供必要的方法。

继承

  • 继承可以让子类具有父类的特性,提高代码的重用性

  • 子类继承父类(基类)

  • python支持多重继承,一个子类可以继承多个父类。

  • 语法格式:

      class 子类类名(父类1[, 父类2, ...]):类体
    
  • 如果在类定义中没有指定父类,则默认父类为object类。也就是说,object是所有类的父类,里面定义了所有类的公有的默认实现,比如:_new_()。

  • 定义子类时,必须在其构造函数中调用父类的构造函数。调用格式如下:

      父类名.__init__(self, 参数列表)
    

实例:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef get_info(self):print(self.name, "的年龄为:", self.age)class Student(Person):def __init__(self, name, age, score):Person.__init__(self, name, age)  # 必须显式调用父类的初始化方法,不然解释器不会去调用self.score = scoredef get_info(self):print(self.name, "的年龄为:", self.age, "分数为:", self.score)def test():s = Student("YJP", 21, 149)s.get_info()print(dir(s))if __name__ == "__main__":test()

运行结果:

YJP 的年龄为: 21 分数为: 149
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'get_info', 'name', 'score']
  • 成员继承:子类继承了父类除构造方法之外的所有成员。
  • 方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为重写。

重写案列:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef introduce_name(self):print("我的名字为:", self.name)def introduce_age(self):print("我的年龄为:{0}".format(self.age))class Student(Person):def __init__(self, name, age, score):Person.__init__(self, name, age)  # 必须显式调用父类的初始化方法,不然解释器不会去调用self.score = scoredef introduce_name(self):""" 重写父类的方法 """print("大家好,我的名字为:", self.name)def introduce_age(self):""" 重写父类的方法 """print("大家好,我的年龄为:{0}".format(self.age))def test():s = Student("YJP", 21, 149)s.introduce_name()s.introduce_age()if __name__ == "__main__":test()

运行结果:

大家好,我的名字为: YJP
大家好,我的年龄为:21

Python学习记录 面向对象相关推荐

  1. Python学习记录day3

    2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...

  2. Python学习之面向对象编程

    Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Python学习之高级特性 Python学习之函数式编程 Python学习之模块 Python学 ...

  3. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

  4. Python学习记录——英文名修改成标准格式

    Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...

  5. python学习记录——容器篇

    容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...

  6. Python学习记录day6-反射、常用模块

    Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...

  7. Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)

    一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...

  8. Python学习之面向对象高级编程

    Python学习目录 1. 在Mac下使用Python3 2. Python学习之数据类型 3. Python学习之函数 4. Python学习之高级特性 5. Python学习之函数式编程 6. P ...

  9. 蜗牛一步一步地往上爬的Python学习记录

    Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...

最新文章

  1. windows系统下的Qt安装
  2. Machine Learning for Encrypted Malware Traffic Classification
  3. python——异常(1),捕获特定异常
  4. python list超出范围_使用lxmldjango/python-list索引超出范围
  5. Go语言技术教程:Redis介绍安装和使用
  6. 猪行天下之Python基础——1.1 Python开发环境搭建
  7. 使用 Mesos 管理虚拟机
  8. 使用OAuth 2 / OpenID Connect的SSO的Spring Boot 2本机方法
  9. ×××S 2012 交互式报表 -- 同步交互式排序
  10. win10无法检验服务器出示的ssl证书,win10系统网站启用ssL安全证书的操作方法
  11. 虫食算(洛谷-P1092)
  12. 5月24日上课笔记-js操作DOM
  13. Exec l 中分列的作用
  14. JFrame小练习1
  15. Halcon 4点单标相机外参
  16. PHP字体向右移动,CSS3如何实现文字向右循环闪过效果以及可在移动端使用的实例代码分享...
  17. 你使用过哪些数据分析的方法?
  18. 梁勇:展望 2017年商业智能BI 发展的趋势
  19. layuimini tab切换刷新解决方案
  20. 快速傅里叶变换MATLAB代码实现

热门文章

  1. iOS 对iPhone X XS XR XS MAX适配
  2. 外骨骼机器人:左手医疗,右手工业
  3. (笔记) RN React Native 热更新(react-native-code-push) AppCenter
  4. 硬件设计36之什么是晶振?
  5. iOS 音视频开发:Audio Unit播放FFmpeg解码的音频
  6. X86 栈溢出原理与实现
  7. JAVA练习题8:遍历数组求和,求平均值以及比平均值小的数据
  8. 2019,程序员是如何运用增长思维找到女朋友?
  9. Wireshark抓包并通过WinHex进行数据提取
  10. Python函数参数前面一个星号(*)和两个星号(**)的含义