Python基础(二十七、继承复写、注解)

文章目录

  • 一、继承
    • 1.复写
    • 2.调用父类同名成员
    • 3.代码示例
  • 二、注解
    • 1.变量注解
    • 2.函数注解
    • 3.Union联合注解
      • 语法如下:
      • 示例:
      • 注意事项:

一、继承

1.复写

子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么可以进行复写。
即:在子类中重新定义同名的属性或方法即可。

2.调用父类同名成员

一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员如果需要使用被复写的父类的成员,需要特殊的调用方式:

  • 方式1:
    调用父类成员
    • 使用成员变量:父类名.成员变量
    • 使用成员方法:父类名.成员方法(self)
  • 方式2:
    使用super()调用父类成员
    • 使用成员变量: super().成员变量
    • 使用成员方法: super().成员方法()

3.代码示例

import部分见Python基础(二十六、封装、继承)

import siyou
from sound import clockclass PhoneUp(siyou.Phone, clock.Clock):def __init__(self, IMEI, sound, id, price, face_id):super().__init__(IMEI, sound)super().__init__(id, price)# 面部识别self.face_id = face_id# 复写def ca11_by_5g(self):if self.face_id != None:print("已为您开启5g,自适应环境调整降噪模式")else:# 使用父类的成员方法super().ca11_by_5g()def face(self):if self.face_id != None:print("面部识别设置成功")if __name__ == "__main__":phone = PhoneUp(1102, 2, 1111,122,None)phone = PhoneUp(1102, 2, 1111,122,11)phone.ca11_by_5g()phone.face()phone.ring()

二、注解

1.变量注解

变量注解用于指定变量的类型信息,通常位于变量名后面,使用冒号分隔。例如:

x: int = 42
y = 42 # type: int

这条语句表示将整数值42赋给变量x,并且将x标注为int类型。

变量注解的作用:

  • 提高代码可读性和可维护性,使程序员更容易理解变量的含义和类型信息。
  • 帮助IDE等工具进行类型检查和代码补全,提高开发效率和代码质量。
  • 在一些静态类型检查工具中可以进行类型检查。

2.函数注解

函数注解用于指定函数参数和返回值的类型信息,通常位于函数定义的括号和冒号之间,或者是在箭头后面指定返回类型。例如:

def add(x: int, y: int) -> int:return x + y
def add(x, y):# type: (int, int) -> intreturn x + y

这个函数的参数x和y被标注为int类型,返回值被标注为int类型。

函数注解的作用:

  • 提高代码可读性和可维护性,使程序员更容易理解函数的参数和返回值的类型信息。
  • 帮助IDE等工具进行类型检查和代码补全,提高开发效率和代码质量。
  • 在一些静态类型检查工具中可以进行类型检查。

需要注意的是,Python的类型注解只是一种约定,不会在程序执行时强制执行类型检查。因此,在使用类型注解时,仍然需要编写相应的代码来确保变量和函数的正确类型使用。

3.Union联合注解

在Python中,使用Union进行联合注解可以指定一个变量或函数参数可以接受多种类型的值。Union是typing模块中的一个工具类,用于创建复合类型。

语法如下:

from typing import Unionvar: Union[type1, type2, ...]

其中,type1、type2等表示可以接受的类型。

示例:

from typing import Uniondef add(a: Union[int, float], b: Union[int, float]) -> Union[int, float]:return a + bresult1 = add(5, 3)
print(result1)  # 输出:8result2 = add(2.5, 1.5)
print(result2)  # 输出:4.0

在上面的例子中,add函数的参数a和b都被注解为Union[int, float],表示可以接受整数或浮点数类型的值。返回值也被注解为Union[int, float],表示返回的结果可以是整数或浮点数类型。

注意事项:

  • Union注解中的类型可以是任何有效的类型,包括基本类型、自定义类型和其他复合类型(如List, Tuple等)。
  • Union注解中的类型顺序并没有特定要求,例如Union[int, float]和Union[float, int]是等价的。
  • 当使用Union注解时,变量或函数参数可以接受注解中列出的所有类型的值。例如,在上面的示例中,add函数可以接受整数或浮点数类型的参数,并返回相应的结果。
  • 在类型检查工具(如mypy)中,使用Union注解可以进行类型检查,确保传入的值和返回的结果符合注解中指定的类型。
  • 尽管Union提供了灵活的类型组合,但过多的类型组合可能会导致代码可读性降低。因此,在使用Union注解时,建议尽量保持类型组合的简洁和清晰。
  • 当需要表示可选类型(即可以为指定类型或None)时,可以使用Optional类型,它实际上是Union[type, None]的简写形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Microsoft Copilot】手机端发布 ——GPT-4, DALL-E3 免费用

Microsoft Copilot 关于Microsoft CopilotMicrosoft Copilot 的特点1. 可以在手机端使用:2. 可以免费使用GPT-4。3. 可以无限制地使用GPT-4。4. 可以使用DALL-E3生成图片。5. 搜索功能6. 图像识别 Microsoft Copilot的缺点和注意事项1. 非常容易报错2. 不支持长篇聊…

树状结构查询 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C 题目描述 通常使用多行的节点、父节点表示一棵树,比如: 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后,请打印出来树中他的所有下层节点。 …

【Python_PySide6学习笔记(二十八)】基于PySide6实现移动窗体到屏幕中间位置

基于PySide6实现移动窗体到屏幕中间位置 基于PySide6实现移动窗体到屏幕中间位置前言一、背景介绍二、实现思路三、具体代码四、函数调用五、实现效果基于PySide6实现移动窗体到屏幕中间位置 前言 在 【Python_PySide2学习笔记(十)】移动窗体到屏幕中间位置 中介绍过移动窗…

靶机实战(10):OSCP备考之VulnHub Tre 1

靶机官网:Tre: 1[1] 实战思路: 一、主机发现二、端口发现(服务、组件、版本)三、漏洞发现(获取权限) 8082端口/HTTP服务 组件漏洞URL漏洞(目录、文件)80端口/HTTP服务 组件漏洞URL漏…

鸿蒙Harmony--状态管理器-@Observed装饰器和@ObjectLink装饰器详解

经历的越多,越喜欢简单的生活,干净的东西,清楚的感觉,有结果的事,和说到做到的人。把圈子变小,把语放缓,把心放宽,用心做好手边的事儿,该有的总会有的! 目录 一&#xff…

kafka下载安装部署

Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。它现在是Apache旗下的一个开源系统,作为hadoop生态系统的一部分,被各种商业公司广泛应用。它的最大的特性就是可以实时的处理大量数据以满足各…

面试算法115:重建序列

题目 长度为n的数组org是数字1~n的一个排列,seqs是若干序列,请判断数组org是否为可以由seqs重建的唯一序列。重建的序列是指seqs所有序列的最短公共超序列,即seqs中的任意序列都是该序列的子序列。 例如,如果数组org为…

初识Hadoop-概述与关键技术

一.大数据概述 1.什么是大数据 高速发展的信息时代,新一轮科技革命和变革正在加速推进,技术创新日益成为重塑经济发展模式和促进经济增长的重要驱动力量,而“大数据”无疑是核心推动力。 那么,什么是“大数据”呢&#xff1…

初识C#语言

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、C#语言以及特点C# 强大的编程功能 二、C# 与 .NET三、.NET 与 .NET Framwork.Net 框架(.Net Framework).NET 与 .NET Framework 总结…

MySQL基础命令

1.SQL语句基础 1.1 SQL简介 SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及 数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务 改变数据库的结构 更改系统的安全设置 …

Redis面试题12

Redis 的主从复制是什么? Redis 的主从复制是一种数据备份和高可用性机制,通过将一个 Redis 服务器的数据复制到其他 Redis 从服务器上来实现数据的冗余备份和读写分离。 主从复制的工作原理如下: 配置主服务器并开启主从复制功能。从服务器…

人工智能推动供应链革命的成功

人工智能推动供应链革命的成功 目录 人工智能推动供应链革命的成功一、供应链管理不断变化的面貌二、拥挤的解决方案景观三、踏上人工智能驱动的转型1. 价值创造识别、战略和路线图2. 目标解决方案设计和供应商选择3. 实施与系统集成4. 变革管理、能力建设和全面价值获取 新技术…

flutter 文件下载及存储路径

flutter 文件下载及存储路径 前言一、下载进度条二、文件路径二、文件上传总结 前言 日常开发中,经常会遇到下载文件的功能,往往我们在需要保存文件的路径上去调试,比如Android中的路径,有些会报错在SD卡中,但是有些手…

http 请求流程,网络的七层模型

浏览器的【网络进程】开始发起http请求,具体步骤如下: 应用层【也就是浏览器的网络进程】发起http请求 传输层 tcp 三次握手建立连接 http 请求加上 tcp 头部,包括源端口号,目的端口号和用于校验数据完整性的序号,向…

VCG 网格顶点聚类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 顶点聚类方法将落在给定大小体素中的所有顶点集中到单个顶点之上,其过程有点类似于点云体素下采样,之后再基于聚类之后的顶点重新连接面片,以达到网格简化的目的。 二、实现代码 //VCG #include <vcg/comple…

提升企业综合服务支撑能力——以标书形式展现

在当今竞争激烈的商业环境中&#xff0c;企业的综合服务支撑能力成为了衡量其竞争力的重要指标。而如何将企业的综合服务能力以标书的形式展现出来&#xff0c;成为了许多企业面临的挑战。 一、明确标书的目标 在制作标书之前&#xff0c;企业需要明确标书的主要目标。这份标…

1.5计算机网络的分类

1.5计算机网络的分类 1.5.1按照网络的作用范围进行分类 1、广域网WAN 广域网WAN&#xff08;WideAreaNetwork&#xff09;&#xff1a;广域网的作用范围通常为几十到几千公里&#xff0c;因而有时也称为远程网(longhaulnetwork)。广域网是互联网的核心部分&#xff0c;其任务…

几款优秀科学开源计算软件介绍

有一些比较优秀的软件&#xff0c;它们在科学计算、数据处理和分析方面具有广泛的应用和功能。以下是一些比较知名的软件&#xff1a; SciPy&#xff1a;SciPy是一个非常流行的科学计算库&#xff0c;提供了大量的数学函数和算法&#xff0c;用于解决各种科学问题。它支持多种操…

dhcp 时间同步 详细介绍

装服务程序步骤 1.如果有默认配置 请先备份 再进行修改 2.修改完配置文件 请重启服务或重新加载配置文件 否则不生效 注意&#xff1a;有的软件 安装包的名字和 系统里服务程序的名字不一样 htttp httpd openssh-server ssh 高阶级改防火墙 一&#xff0c; dhcp自动分配IP地…

py11-python之正则-re

一、正则表达式 1、定义&#xff1a; 正则表达式&#xff0c;又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本     简单来说&#xff0c;正则表达式就是使用: 字符串定义规则&…