Python从入门到精通秘籍十八

一、Python之继承的基础语法

在Python中,继承是面向对象编程的一个重要概念,它允许一个类(称为子类)从另一个类(称为父类或基类)继承属性和方法。子类可以使用继承的属性和方法,并且还可以添加自己的属性和方法。下面是一个示例代码,演示了Python中继承的基础语法:

class Animal:def __init__(self, name):self.name = namedef eat(self):print(f"{self.name} is eating.")def sleep(self):print(f"{self.name} is sleeping.")class Dog(Animal):  # Dog类继承自Animal类def __init__(self, name, breed):super().__init__(name)  # 调用父类的构造方法self.breed = breeddef bark(self):print(f"{self.name} is barking.")def sleep(self):  # 子类重写父类的方法print(f"{self.name} is sleeping on the floor.")animal = Animal("Animal")
animal.eat()
animal.sleep()dog = Dog("Max", "Labrador")
dog.eat()  # 继承父类的方法
dog.bark()  # 子类自己的方法
dog.sleep()  # 重写父类的方法

运行上述代码,输出结果为:

Animal is eating.
Animal is sleeping.
Max is eating.
Max is barking.
Max is sleeping on the floor.

在上面的代码中,我们定义了一个名为Animal的父类,并在其中定义了eat()sleep()方法。

然后,我们定义了一个名为Dog的子类,并使用圆括号将父类Animal放在类名后面,表示继承自Animal类。

子类Dog有自己的构造方法__init__(),它调用了父类的构造方法super().__init__(name)来初始化继承的属性。此外,子类还有自己的方法bark()

在示例中,我们首先创建了一个Animal对象,并调用其方法。然后,我们创建了一个Dog对象,并调用了继承的方法eat(),子类自己的方法bark(),以及重写的方法sleep()

通过继承,子类可以使用父类的属性和方法,并且还可以添加自己的属性和方法或对父类的方法进行重写。这样,代码可以更好地组织和复用,同时也实现了多态性,即不同的子类可以表现出不同的行为。

二、Python之变量的类型注释

在Python中,变量的类型注释是一种用于指定变量类型的语法,它可以增加代码的可读性和可维护性。类型注释使用冒号后面跟上类型来标注变量。下面是一个示例代码,演示了Python中变量的类型注释:

def multiply(a: int, b: int) -> int:return a * bx: int = 5
y: float = 3.14
name: str = "Alice"
numbers: list[int] = [1, 2, 3, 4, 5]result: int = multiply(x, y)
print(result)for num in numbers:print(num)

在上面的代码中,我们首先定义了一个名为multiply()的函数,并使用类型注释指定了输入参数ab的类型为整数,返回值类型为整数。

接下来,我们定义了几个变量,并使用类型注释指定了它们的类型。例如,变量x的类型为整数,变量y的类型为浮点数,变量name的类型为字符串,变量numbers的类型为整数列表。

最后,我们调用multiply()函数并将变量xy作为参数传递给它,将返回结果赋给变量result。然后,我们使用print()函数打印出结果。

for循环中,我们遍历numbers列表,并将每个元素赋给变量num,然后打印出来。

类型注释是可选的,Python解释器并不会强制执行类型约束。它们只是一种文档形式,用于提供关于变量类型的信息。在编辑器或IDE中,类型注释可以帮助进行代码补全、类型检查和错误提示等功能。

需要注意的是,类型注释只是一个建议,而不是限制。Python仍然保持其动态类型特性,允许在运行时改变变量类型。因此,即使添加了类型注释,也要小心处理类型转换和错误处理。

三、Python之函数和方法类型注解

在Python中,函数和方法的类型注解是一种用于指定参数类型和返回值类型的语法。它可以增加代码的可读性和可维护性,并提供静态类型检查的支持。下面是一个示例代码,演示了Python中函数和方法的类型注解:

def add(a: int, b: int) -> int:return a + bclass Calculator:def __init__(self):self.total: int = 0def add(self, num: int) -> None:self.total += numdef get_total(self) -> int:return self.totalcalculator = Calculator()
calculator.add(5)
calculator.add(10)
result: int = calculator.get_total()
print(result)result2: int = add(3, 4)
print(result2)

在上面的代码中,我们首先定义了一个名为add()的函数,并使用类型注解指定了输入参数ab的类型为整数,返回值类型为整数。

接下来,我们定义了一个名为Calculator的类,并在__init__()方法中使用类型注解指定了实例变量total的类型为整数。

类中还定义了两个方法:add()get_total()。这些方法也使用了类型注解来指定参数类型和返回值类型。add()方法将传入的整数累加到total变量中,get_total()方法返回total的值。

然后,我们创建了Calculator类的实例calculator,并调用其方法来进行计算。最后,我们将结果赋给变量resultresult2,并使用print()函数打印出来。

类型注解可以提供给静态类型检查工具如mypy等使用,这些工具可以在运行前对代码进行类型检查,并发现潜在的类型相关错误。但需要注意的是,Python解释器本身不会强制执行类型约束,类型注解只是一种文档形式,用于提供关于参数类型和返回值类型的信息。

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

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

相关文章

jmeter断言使用方法

断言主流的有两种:响应断言、JSON断言 响应断言 1、http请求添加响应断言 2、三种作用域:第一种既作用主请求又作用子请求、只作用主请求、只作用子请求。我们默认选中间的仅作用主请求即可。 3、测试字段和匹配规则 测试字段一般选择响应文本即可&am…

机器学习的步骤与方法

一、引言: 机器学习是人工智能的分支之一,旨在研究如何使计算机系统自主地从数据中学习,并能够根据以往的经验做出预测或决策。现代机器学习主要使用统计学、概率论和优化算法来构建模型和训练算法。 应用场景: 机器学习在众多领…

web渗透测试漏洞流程:google hacking语法具体语句示例

web渗透测试漏洞流程 渗透测试信息收集---域名信息收集2.1.1.3 GoogleHacking用法示例管理后台地址上传类漏洞地址注入页面编辑器页面目录遍历漏洞SQL错误phpinfo()配置文件泄露数据库文件泄露日志文件泄露备份和历史文件泄露公开文件泄露邮箱信息社工信息搜索文件

备战蓝桥杯D33 - 真题 - 松散子序列

题目描述 解题思路 ps:思路是我看了大佬的题解后自己的理解,自己给自己捋清楚思路。 1.设置输入,将字符串输入 2.因为输入的是字符,但要找出字符的最大价值,所以先将字符串转化成对应的数值。 这时候就要用到ord函…

HTTPS协议的工作原理:保护网络通信的安全盾牌

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

阿里云4核16G服务器价格26.52元1个月、149.00元半年,ECS经济型e实例

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年,配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge,4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…

【计算机网络】常见面试题汇总

文章目录 1.计算机网络基础1.1网络分层模型/OSI七层模型是什么?1.2TCP/IP四层模型是什么?每一层的作用?1.2.1TCP四层模型?1.2.2为什么网络要分层? 1.2常见网络协议1.2.1应用层常见的协议1.2.2网络层常见的协议 2.HTTP2…

Spring Boot2

SpringBoot 配置文件 properties配置文件 application.properties 以配置端口和访问路径为例 server.port8080 yaml配置文件 application.yml / application.yaml server:port: 81 在实际开发中,更常用的是yaml配置文件 yaml层级表示更加明显 yml配置信息书…

前端学习之css 定位与浮动

定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>定位和浮动</title><style>*{/* 将模块紧紧贴着浏览器边框 */margin: 0;}.c{background-color: blueviolet;width: 100px;height: 1…

【Tanshtech】生物膜/细胞膜包裹的纳米颗粒的制备

癌症传统治疗的限制性&#xff0c;如化疗产生的非靶向副作用以及肿瘤可能产生的耐药性&#xff0c;使得医生需要在抗肿瘤活性和患者安全之间取得平衡。纳米医学在解决这一问题上发挥了巨大作用&#xff0c;纳米制剂能够被动或主动靶向到肿瘤部位。而纳米载体也被用于提高药物的…

【VSTO开发】遍历 Ribbon 中的所有控件或按钮

在 VSTO&#xff08;Visual Studio Tools for Office&#xff09;中&#xff0c;可以通过代码来遍历 Ribbon 中的所有控件或按钮。可以使用 C# 或 VB.NET 等编程语言来实现这个功能。 下面是一个简单的示例代码&#xff0c;演示如何遍历 Ribbon 中的所有控件或按钮&#xff1a…

HTTP(2)

HTTP 通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。 那么请求和响应是怎样运作的呢 HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。 请求端&#xff08;客户端&#xff09;的HTTP 报文叫做请求报文&#xff0c;响应端&#xff08;服务器…

mongodb 和MinIO 常用代码

mongodb_读取id并在Minio中查找该文件是否存在 import pymongo from minio import Minio from minio.error import S3Error settings {"ip": "mongodb://rootxxxx", # ip"db_name": "tl-xxxx", # 数据库名字 } self.conn MongoC…

Javascript 知识点总结(2):数组与字符串

数组 数组是一种有序的集合&#xff0c;其中每个元素都有一个对应的索引。在JavaScript中&#xff0c;数组可以包含不同类型的元素&#xff0c;如数字、字符串和对象。 创建数组 可以使用以下语法来创建一个数组&#xff1a; const array [1, 2, 3, 4, 5];访问数组元素 可…

静态路由综合实验

一.实验拓扑图 二.实验要求 1、R6为ISP&#xff0c;接口IP地址均为公有地址&#xff0c;该设备只能配置IP地址&#xff0c;之后不能再对其进行任何配置&#xff1b; 2、R1-R5为局域网&#xff0c;私有IP地址192.168.1.0/24&#xff0c;请合理分配&#xff1b; 3、R1、R2、R…

亚马逊云科技《生成式 AI 精英速成计划》

最近亚马逊云科技推出了「生成式AI精英速成计划」&#xff0c;获取包含&#xff1a;免费学习热门生成式AI课程、技能证书、人力主管的面试辅导、云计算国际认证、免费去往北美参加全球用户大会等&#xff5e; 针对开发者和企业非技术专业人士&#xff0c;了解如何使用大模型平台…

OpenCV学习笔记(十一)——利用Sobel算子计算梯度

Sobel算子是基于一阶导数的离散差分算子&#xff0c;其中Sobel对于像素值的变化是十分敏感的&#xff0c;在进行边缘检测的时候&#xff0c;Sobel算子常用于对周围像素的重要性进行检测。 Sobel算子包括检验水平方向的算子和检测竖直方向的算子 计算机梯度值的操作如下&#x…

Java设计模式 | 抽象工厂模式

抽象工厂模式 工厂方法模式中考虑的是一类产品的生产&#xff0c;如幼儿园只培养小朋友&#xff0c;鞋厂只生产鞋子。这些工厂只生产同种类产品&#xff0c;同种类产品称为同等级产品&#xff0c;即工厂方法模式只考虑生产同等级的产品&#xff0c;但是在现实生活中许多工厂都…

【计算机网络】计算机网络概述

文章目录 一、计算机网络的概念二、 计算机网络的功能1. 数据通信2. 资源共享3. 分布式处理4. 提高可靠性5. 负载均衡 补充&#xff1a; 计算机的发展阶段小结三、计算机网络的组成1. 组成部分2. 工作方式3. 功能组成 四、 计算机网络的分类1. 按分布范围2. 按使用者3. 按交换技…

图片html5提供的懒加载与vue-lazyload的区别

原生HTML lazy loading特性 <img src"/images/ocean.jpeg" alt"Ocean" loading"lazy"> loading"lazy" 是HTML5的一个原生特性&#xff0c;它允许浏览器延迟加载图片直至图片距离视口很近或者即将进入视口时。这是一种由浏览器…