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. PIE SDK热力图
  2. log4jdbc mysql jdbc_spring boot 集成log4jdbc 查看完整sql
  3. 最新发布丨2022 连锁餐饮数字营销制胜之道
  4. TensorFlow 笔记5--模型复用
  5. ESP32在Ubuntu16.04的环境搭建
  6. java 跟踪错误程序_Java异常处理 如何跟踪异常的传播路径
  7. Python 如何创建多维的list
  8. form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
  9. 东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...
  10. python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
  11. java des 0填充方式_DES填充方式与初始向量IV的作用
  12. 解决:void value not ignored as it ought to be
  13. 文本转语音(TTS)工具Balabolka
  14. 哔哩哔哩Java学习视频
  15. Stata: 空间计量模型溢出效应的动态呈现
  16. 自己做量化交易软件(32)小白量化实战6--仿通达信公式选股
  17. 74系列芯片功能说明
  18. tplink迷你路由器中继模式_TP-Link TL-WR708N迷你无线路由器中继模式怎么设置
  19. IIS发布网站及网页显示设置
  20. 04.ElasticSearch之IK分词器的安装与使用

热门文章

  1. 如何写出运行速度更快的代码:软件篇——加速k均值的代码(OpenMP)
  2. 8、关于中大型网络无线对比中小型的区别点
  3. 自动驾驶汽车需求拉动,我国车载激光雷达市场规模有望突破15亿元
  4. xenapp6.5上安装完smartauditor后,Appcenter检测失败
  5. 求指定年份到当前年份的所有时间段 cte
  6. 什么样的店铺是需要去补充订单的
  7. 王兴与穆荣均将所持摩拜股权质押 官方称只是手续办理完成
  8. 基于java+ssm教学质量评价系统(学生评教)-计算机毕业设计
  9. word 导出 不带endnote 参考文献格式的论文
  10. python字符串格式化练习