python学习笔记:继承与超类
与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。
1.继承
要指定超类,可在定义类时,在class语句中的类名后加上超类名
- 基类就是超类,派生类就是子类
格式
class Dog: #
pass
class Bobo(Dog): # Dog类的子类
pass
子类会
- 重新定义重写超类方法init
- 继承超类的方法,无需再次编写
class Dog:
def __init__(self):
print('wang!!!')
def eat(self):
print('Dog is eating.')
class Bobo(Dog): # 继承Dog
pass
tom = Bobo()
tom.eat()
>
wang!!!
Dog is eating.
在子类中进行重写
class Dog:
def __init__(self):
print('wang!!!')
def eat(self):
print('Dog is eating.')
class Bobo(Dog):
def __init__(self):
print('Bobo is wang!')
def eat(self):
print('Bobo is eating.')
tom = Bobo()
tom.eat()
>
Bobo is wang!
Bobo is eating.
1.1查找一个类的子类和基类
issubclass确定一个类是否是另一个类的子类
issubclass(Bobo, Dog) # 子类 超类
> True
issubclass(Dog, Bobo)
> False
- 已知一个类,想知道它的基类,访问特殊属性
__bases__
print(Bobo.__bases__)
> (<class '__main__.Dog'>,)
isinstance确定创建的对象是否是特定类的实例创建子类的实例,这个对象同时也是其基类的实例
class Dog:
pass
class Bobo(Dog):
pass
tom = Bobo()
print(isinstance(tom, Bobo))
print(isinstance(tom, Dog))
>
True
True
- 使用属性
__class__可以知道该实例属于哪个类
print(tom.__class__)
> <class '__main__.Bobo'>
1.2 多个超类
尽量避免使用
格式
class A:
pass
class B:
pass
class C(A, B): # 同时继承A和B
pass
1.3接口
接口这一概念与多态相关。实际上,python中没有与java相对应的接口。需要特定的模块来实现
1.4 抽象基类
抽象类不能(不应该)被实例化,用于定义子类应该实现的一些抽象方法。
格式
from abc import ABC, abstractmethod
class 类名(ABC): # 继承ABC类
@abstractmethod # 标记为抽象方法,在子类中必须实现
def 方法名(self):
pass
from abc import ABC, abstractmethod
class Dog(ABC):
@abstractmethod
def eat(self):
pass
class Bobo(Dog):
def eat(self):
print('eating.')
tom = Bobo()
tom.eat()
> eating.
python学习笔记:继承与超类的更多相关文章
- python学习笔记4_类和更抽象
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- 【python学习笔记】7.更加抽象
[python学习笔记]7.更加抽象 类的定义就是执行代码块 在内存保存一个原始实例,可以通过类名来访问 类的实例化,是创建一个原始实例的副本, 并且所有成员变量与原始实例绑定 通过修改实例变量,可以 ...
- python学习笔记5_异常
python学习笔记5_异常 1.什么事异常 Python使用异常对象(exception object) 来表示异常情况.遇到错误会发生异常. 如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(t ...
- Python学习笔记之异常处理
1.概念 Python 使用异常对象来表示异常状态,并在遇到错误时引发异常.异常对象未被捕获时,程序将终止并显示一条错误信息 >>> 1/0 # Traceback (most re ...
- Python学习笔记之类与对象
这篇文章介绍有关 Python 类中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中类的使用技巧 1.与类和对象相关的内置方法 issubclass(class, classinfo) ...
- Python 学习笔记(下)
Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...
- Python学习笔记总结
目录 Python学习笔记总结 前言 安装 数据类型 Hello,World 变量 字符串 首字母大写 全部小写 全部大写 Tab和换行符 格式化 去除空格 List列表 列表增删改查排序 遍历列表 ...
- Think Python 学习笔记
#!/usr/bin/env python# coding: utf-8# # Think Python 学习笔记# 1.关于异或计算符# In[2]:6^2# 2.关于函数# 注意:变量名称不能用数 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
随机推荐
- 【Java SE】IO流
1.File类 ①File类的一个对象代表一个文件或一个文件目录 ②File类声明在java.io下 1.1 FIle类的声明 路径分隔符 Windows和DOS系统默认使用'',UNIX和URL使用 ...
- .Net 6.0 部署Linux+Nginx +PM2教程
今天带大家将本地.Net6.0项目部署到Linux系统中,其中有用到Nginx反向代理和PM2进程管理工具,希望本偏文章能对你有所帮助,成为你成功路上的垫脚石! 背景: 在.Net 5.0横空出世之后 ...
- 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)
1.项目说明基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然 ...
- Git代码提交规范
1. 引言 思想,因人而异,难以重复 写代码时,每个人的习惯是不一样的,所以,引入了代码规范,为了省力,引入了自动格式化代码工具,前端工程中比较典型的自动格式化代码工具如:Prettier · Opi ...
- Golang for循环遍历小坑
一.for循环 循环:让程序多次执行相同的代码块for循环是Go语言中唯一一个循环结构for循环经典语法先执行表达式1执行表达式2判断是否成立,如果成立执行循环体循环体执行完成后,执行表达式3再次执行 ...
- 2022-12-20:二狗买了一些小兵玩具,和大胖一起玩, 一共有n个小兵,这n个小兵拍成一列, 第i个小兵战斗力为hi,然后他们两个开始对小兵进行排列, 一共进行m次操作,二狗每次操作选择一个数k,
2022-12-20:二狗买了一些小兵玩具,和大胖一起玩, 一共有n个小兵,这n个小兵拍成一列, 第i个小兵战斗力为hi,然后他们两个开始对小兵进行排列, 一共进行m次操作,二狗每次操作选择一个数k, ...
- 2021-12-02:给定一个字符串str,和一个正数k。 返回长度为k的所有子序列中,字典序最大的子序列。 来自腾讯。
2021-12-02:给定一个字符串str,和一个正数k. 返回长度为k的所有子序列中,字典序最大的子序列. 来自腾讯. 答案2021-12-02: 单调栈.先进来的元素大,后进来的元素小. 时间复杂 ...
- 2021-11-27:给定一个数组arr,长度为N,做出一个结构,可以高效的做如下的查询: 1) int querySum(L,R) : 查询arr[L...R]上的累加和; 2) int query
2021-11-27:给定一个数组arr,长度为N,做出一个结构,可以高效的做如下的查询: int querySum(L,R) : 查询arr[L-R]上的累加和; int queryAim(L,R) ...
- 【GiraKoo】could not find UI helper 'git-credential-manager-ui'
环境 Windows 11 git version 2.39.0.windows.1 TortoiseGit 现象 使用TortoiseGit执行git pull命令时,提示could not fin ...
- 【一步步开发AI运动小程序】二、引入插件
随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...