【Python】类型注解 ③ ( 使用 # type: 类型 注释方式设置类型注解 | 类型注解是提示性而非强制性 )

文章目录

  • 一、使用 注释语法 设置 类型注解
    • 1、使用 注释语法 设置 类型注解语法介绍
    • 2、为 基础类型变量 设置 " 类型注解 "
    • 3、为 类 的 对象类型 设置 " 类型注解 "
    • 4、为 基础容器类型变量 设置 简易 " 类型注解 "
    • 5、为 基础容器类型变量 设置 详细 " 类型注解 "
    • 6、完整代码示例
  • 二、类型注解没有强制性





一、使用 注释语法 设置 类型注解




1、使用 注释语法 设置 类型注解语法介绍


除了使用 变量: 类型 的语法格式 设置 类型注解 之外 ,

还可以 使用 注释语法 为 Python 变量 设置 类型注解 , 语法如下 :

# type: 类型名称

类型注解 不是 强制性的 , 只是提示性的 ;

不按照 类型注解进行 赋值 , 代码也不会报错 ;


2、为 基础类型变量 设置 " 类型注解 "


为 基础类型变量 设置 " 类型注解 " :

# 1. 为 基础类型变量 设置 " 类型注解 "
var_int = 10                                # type: int
var_float = 3.14                            # type: float
var_bool = True                             # type: bool
var_str = "Tom"                             # type: str

3、为 类 的 对象类型 设置 " 类型注解 "


为 类 的 对象类型变量 设置 " 类型注解 " :

# 2. 为 类 的 对象类型变量 设置 " 类型注解 "
class Student:passs = Student()                               # type: Student

4、为 基础容器类型变量 设置 简易 " 类型注解 "


为 基础容器类型变量 设置 简易 " 类型注解 " :

# 3. 为 基础容器类型变量 设置 简易 " 类型注解 "
var_list = [1, 2, 3]                        # type: list
var_tuple = (1, 2, 3)                       # type: tuple
var_set = {1, 2, 3}                         # type: set
var_dict = {"Tom": 18, "Jerry": 12, }       # type: dict
var_str = "China"                           # type: str

5、为 基础容器类型变量 设置 详细 " 类型注解 "


为 基础容器类型变量 设置 详细 " 类型注解 " :

# 4. 为 基础容器类型变量 设置 详细 " 类型注解 "
var_list_2 = [1, 2, 3]                      # type: list[int]
var_tuple_2 = (1, True)                     # type: tuple[int, bool]
var_set_2 = {1, 2, 3}                       # type: set[int]
var_dict_2 = {"Tom": 18, "Jerry": 12, }     # type: dict[str, int]

列表 数据容器类型 的 详细 类型注解 , 只需要设置一个元素类型即可 ;

  • list[int] 列表类型 , 列表的元素类型为 int 类型 ;

元组 数据容器类型 的 详细 类型注解 , 需要为每个元素都进行类型标记 , 有几个元素就要标记几个类型 ;

  • tuple[int, bool] 元组类型 , 第一个元素类型是 int 数字类型 , 第二个元素类型是 bool 布尔类型 ;

字典 数据容器类型 的 详细 类型注解 , 需要设置两个类型 , 第一个类型是 键值对 中的 键 Key 的类型 , 第二个类型是 键值对 中的 值 Value 的类型 ;

  • dict[str, int] 字段类型 , 键 Key 的类型是 str 字符串类型 , 值 Value 的类型为 int 数字类型 ;

6、完整代码示例


类型注解 完整代码示例 :

"""
类型注解 代码示例
"""# 1. 为 基础类型变量 设置 " 类型注解 "
var_int = 10                                # type: int
var_float = 3.14                            # type: float
var_bool = True                             # type: bool
var_str = "Tom"                             # type: str# 2. 为 类 的 对象类型变量 设置 " 类型注解 "
class Student:passs = Student()                               # type: Student# 3. 为 基础容器类型变量 设置 简易 " 类型注解 "
var_list = [1, 2, 3]                        # type: list
var_tuple = (1, 2, 3)                       # type: tuple
var_set = {1, 2, 3}                         # type: set
var_dict = {"Tom": 18, "Jerry": 12, }       # type: dict
var_str = "China"                           # type: str# 4. 为 基础容器类型变量 设置 详细 " 类型注解 "
var_list_2 = [1, 2, 3]                      # type: list[int]
var_tuple_2 = (1, True)                     # type: tuple[int, bool]
var_set_2 = {1, 2, 3}                       # type: set[int]
var_dict_2 = {"Tom": 18, "Jerry": 12, }     # type: dict[str, int]

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.pyProcess finished with exit code 0

在这里插入图片描述





二、类型注解没有强制性



类型注解 不是 强制性的 , 只是提示性的 ;

不按照 类型注解进行 赋值 , 代码也不会报错 ;


下面的代码中 , 通过两种方式 为 变量设置了 int 类型的 类型注解 , 但是为其设置了 字符串类型的变量值 , 最终执行也没有报错 ;


代码示例 :

"""
类型注解 代码示例
"""# 使用 变量: 类型 设置类型注解
var_jerry: int = "Jerry"
print(var_jerry)# 使用 type: 类型 注释设置类型注解
var_tom = "Tom"                                # type: int
print(var_tom)

执行结果 :

D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
Jerry
TomProcess finished with exit code 0

警告情况 : 没有报错 , 但是报了一条警告信息 ;

Expected type 'int', got 'str' instead

在这里插入图片描述

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

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

相关文章

基于深度学习的高精度工人安全帽检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度工人安全帽检测识别系统可用于日常生活中或野外来检测与定位工人安全帽目标,利用深度学习算法可实现图片、视频、摄像头等方式的工人安全帽目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用…

67、Redis线程模型,单线程快的原因

Redis线程模型,单线程快的原因 一、Redis线程模型二、单线程快的原因 一、Redis线程模型 Redis基于Reactor模式开发了网络事件处理器,这个处理器叫做文件事件处理器file event handler。这个文件事件处理器,它是单线程的,所以 Re…

Windows与Linux取证分析

目录 一、电子数据取证基本概念 1.电子取证学 2.常规取证 3.洛卡德物质交换原理 4.电子数据范围 5.电子数据取证的概念和目的 6.电子数据取证过程 二、Linux系统取证 1.基本信息获取 (1)获取系统基础信息 (2)用户/用户…

共筑开源新长城 龙蜥社区走进开放原子校源行-清华大学站

6 月 28 日,以“聚缘于校,开源共行”为主题的 2023 年开放原子校源行活动在清华大学成功举行。本次活动由开放原子开源基金会和清华大学共同主办,来自各行业的 22 位大咖共聚校园共话开源。龙蜥社区技术专家边子政受邀进行技术分享&#xff0…

UWB天线设计之一种优化扁平超宽带单极的新方法

文章亮点 一种新颖的方法提出了扁平超宽带单极天线。 通过应用收缩,可以设计具有相同性能的更小的天线作为平面单极天线。 优化结果表明该方法能够设计非常小的天线。 在这项研究中,提出了一种优化扁平超宽带单极天线的新方法。在该方法中,一般性地描述了天线的形状。这种一…

Vue+element table+原生js +touch触摸事件实现移动端横向拖动

Vueelement table原生js touch触摸事件实现移动端横向拖动 今天做移动端项目时,想加个表格展示数据,但是调试的时候发现,表格数据很多时,想要触屏左右滑动内容,但是滑动不了,又不想引用插件实现&#xff0c…

LeetCode141.环形链表

141.环形链表 目录 141.环形链表一、哈希表二、双指针 一、哈希表 最容易想到的方法就是遍历所有节点,每次遍历到一个节点的时候,判断该节点此前是否被访问过 我们可以使用哈希表来存储所有已经访问过的节点 每次到达一个节点,如果该节点已…

Web3时代来临:你准备好了吗?

如果你正在浏览本文,那么很可能你已经是Web3时代的一部分了,或者至少是将要成为其中的一员。因为Web3时代即将来临,它将彻底改变我们对互联网的认识和使用方式。 那么,什么是Web3时代呢?简单来说,它是指基于…

JPA实现多对多关系

本文已收录于专栏 《Java》 目录 概念说明优势利弊实现方式通过两个ManyToMany注解实现类图代码 通过OneToMany和ManyToOne注解实现类图代码 少走弯路总结提升 概念说明 多对多关系是指两个实体之间存在多对多的关联关系。在数据库中,多对多关系无法直接表示&#x…

【树链+EXGCD】杭电多校第一场 A

1001 Hide-And-Seek Game (hdu.edu.cn) 题意: 给定一棵树和两条路径,每条路径都有起点和终点,起始时起点有人,每隔一秒都会往终点走一步,会从起点走向终点再会起点这样不断地周期性地走,让你求一点&#…

java图片裁剪

读取文件夹内的所有图片并裁剪返回到指定文件夹。用于图片的快速裁剪,精修图片做不到,毕竟这是程序来做的。 package com.nbomb.route.test;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.Fi…

React+TypeScript项目中如何使用CodeMirror?

文章目录 前言使用codeMirror注册Js代码提示 前言 之前做需求用到过codeMirror这个工具,觉得还不错,功能很强大,所以记录一下改工具的基础用法,分享给大家。 CodeMirror被广泛应用于许多Web应用程序和开发工具,例如代…

UDP-组播,广播

转自:https://www.cnblogs.com/wangzhilei-src/p/15314315.html UDP是面向非连接的协议,它不与对方建立连接,而是直接把数据报发给对方。UDP无需建立类如三次握手的连接,使得通信效率很高。因此UDP适用于一次传输数据量很少、对可…

【已解决】Flask项目报错AttributeError: ‘Request‘ object has no attribute ‘is_xhr‘

文章目录 报错及分析报错代码分析 解决方案必要的解决方法可能有用的解决方法 报错及分析 报错代码 File "/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py", line 251, in jsonifyif current_app.config[JSONIFY_PR…

STM32 HAL库定时器输入捕获SlaveMode脉宽测量

STM32 HAL库定时器输入捕获SlaveMode脉宽测量 SlaveMode模式简介 ✨SlaveMode复位模式:在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化;同时,如果TIMx_CR1寄存器的URS位为低,还会产生一个更新事件UEV…

Ubuntu 22.0.4编译Android系统Rom

安装 ptyon2.7: sudo apt install python2 whereis python2 sudo ln -s /usr/bin/python2 python 安装JDK: sudo apt-get install openjdk-8-jdk 安装fastboot: sudo apt-get install android-tools-fastboot 安装Repo: sudo apt-get update sudo apt-get…

pytorch中损失函数nn.CrossEntropyLoss与激活函数softmax的关系

在多分类单标签任务中,常使用CrossEntropyLoss作为损失函数,而使用softmax作为对应的最后一层的激活函数。 在Pytorch中,nn.CrossEntropyLoss中已经实现了softmax功能,因此在分类任务的最后一层fc后不需要加入softmax激活函数。因…

Android TextView 在最后一行末尾加图标

当前有个需求.显示一段文本,文本最多显示两行,点击展开后才显示完全。当没有显示完全的时候,需要在文本的第二行末尾显示图标,点击图标和文本,文本展开。难点在于图标需要和第二行文本显示在同一行,高度和文…

windows10 搭建hadoop环境,并且使用hadoop命令

hadoop 环境创建 1. 八、window搭建spark IDEA开发环境 按照步骤安装完 2. windows下安装和配置hadoop 配置环境变量,注意JAVA_HOME路径,修改后,重启电脑,不重启容易报错!!! ​ 新建dat…

【量化课程】02_1.宏观经济学基础概念

2.1_宏观经济学基础概念 文章目录 2.1_宏观经济学基础概念1. 宏观经济简单背景1.1 微观经济学时期1.2 宏观经济学开端1.3 宏观经济学研究的问题1.4 宏观经济与理财的联系 2. 宏观经济分析及关键指标2.1 教材中的宏观经济分析框架和指标2.1.1 国内生产总值GDP2.1.2 边际消费倾向…