Python学习记录 面向对象
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学习记录 面向对象相关推荐
- Python学习记录day3
2019独角兽企业重金招聘Python工程师标准>>> Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个 ...
- Python学习之面向对象编程
Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Python学习之高级特性 Python学习之函数式编程 Python学习之模块 Python学 ...
- 【Python学习记录】Numpy广播机制(broadcast)
✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...
- Python学习记录——英文名修改成标准格式
Python学习记录--英文名修改成标准格式 功能需求 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', ...
- python学习记录——容器篇
容器 字符串 下标(索引) # 下表也称为是索引,是一个整型数字,可以是正数,也可以是负数 # 正数下标是从0开始的,表示第一个字符,-1表示最后一个字符 my_str = 'hello'h e l ...
- Python学习记录day6-反射、常用模块
Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...
- Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)
一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...
- Python学习之面向对象高级编程
Python学习目录 1. 在Mac下使用Python3 2. Python学习之数据类型 3. Python学习之函数 4. Python学习之高级特性 5. Python学习之函数式编程 6. P ...
- 蜗牛一步一步地往上爬的Python学习记录
Python学习记录 前言 简介 基础知识 类型变量 高级特性 函数式编程 高阶函数 偏函数 装饰器decorator 匿名函数 前言 第一,绝对不断更: 第二,绝对认真写: 第三,绝对撰写的公正漂亮 ...
最新文章
- PIE SDK热力图
- log4jdbc mysql jdbc_spring boot 集成log4jdbc 查看完整sql
- 最新发布丨2022 连锁餐饮数字营销制胜之道
- TensorFlow 笔记5--模型复用
- ESP32在Ubuntu16.04的环境搭建
- java 跟踪错误程序_Java异常处理 如何跟踪异常的传播路径
- Python 如何创建多维的list
- form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
- 东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...
- python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
- java des 0填充方式_DES填充方式与初始向量IV的作用
- 解决:void value not ignored as it ought to be
- 文本转语音(TTS)工具Balabolka
- 哔哩哔哩Java学习视频
- Stata: 空间计量模型溢出效应的动态呈现
- 自己做量化交易软件(32)小白量化实战6--仿通达信公式选股
- 74系列芯片功能说明
- tplink迷你路由器中继模式_TP-Link TL-WR708N迷你无线路由器中继模式怎么设置
- IIS发布网站及网页显示设置
- 04.ElasticSearch之IK分词器的安装与使用