python类型提示

2023-11-07

一、类型提示的好处

1、增强代码的可读性

2、IDE中代码提示

3、静态代码检查(第三方库)

二、IDE中代码中提示功能

1、为参数与返回数据指定类型

def greeting(name: str) -> str:       # -> str: 返回值也可以  
    return 'Hello' + name.split(".") # 指定之后就可以调用str的方法

greeting('5').split() # 设置返回值也可以调用str的方法

2、为类型起别名

Vector = list[float]

def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]
from typing import List

Vector = List[float]


def scale(scalar: float, vector: Vector) -> Vector:
    print(scalar,vector)
    return [scalar * num for num in vector]


print(scale(1.1, [1.2, 3.4, 5.5, -4.2]))

3、自定义类型

# 自定义类型
class Student:
    name: str
    age: int

    def get_money(self):
        print('存钱')


def get_stu(name: str) -> Student:
    return Student()


get_stu('lz').  # --> 有相应的提示信息
get_stu('Tom').get_money()

三、静态代码的检查功能

  • pip install mypy
from typing import List
a:List[int] = [] # 必须添加类型提示
a = [1, 2, '1']

# 运行(Terminal) mypy demo.py

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python类型提示 的相关文章

  • 从框架中获取可调用对象

    给定框架对象 由sys getframe http docs python org library sys html sys getframe 例如 我可以获得底层的可调用对象吗 代码解释 def foo frame sys getfram
  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • Django 营业时间

    我想添加诊所的营业时间 我已经对此进行了调查在 Django 中实现 开放时间 的任何现有解决方案 https stackoverflow com questions 8128143 any existing solution to imp
  • 使用 pyppeteer 与 asyncio 关联来抓取内容

    我用 python 结合编写了一个脚本pyppeteer随着asyncio从其登陆页面抓取不同帖子的链接 并最终通过跟踪通向其内页的 url 来获取每个帖子的标题 我这里解析的内容不是动态的 但是 我利用了pyppeteer and asy
  • 如何测试该变量不等于多个事物?

    这是我的一段代码 choice while choice 1 and choice 2 and choice 3 choice raw input pick 1 2 or 3 if choice 1 print 1 it is elif c
  • MacOS Big Sur 中的 NPM 错误“找不到 Python 可执行文件”

    我已经花了整整一周的时间寻找这个问题的答案 但没有成功 我查看了每个 StackOverflow 帖子 Google 的每一篇文章以及我能找到的每个相关的 Github 问题 大多数相关错误似乎都比较旧 所以我想知道我的问题是否由于我使用的
  • 如何使用 Pycharm 运行 fast-api 服务器?

    我有一个简单的 API 函数 如下所示 from fastapi import FastAPI app FastAPI app get async def read root return Hello World 我正在使用启动服务器uvi
  • 让 python 脚本打印到终端而不作为标准输出的一部分返回

    我正在尝试编写一个返回值的 python 脚本 然后我可以将其传递给 bash 脚本 问题是我想要在 bash 中返回一个单一值 但我想要一些东西一路打印到终端 这是一个示例脚本 我们称之为 return5 py usr bin env p
  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • 如何用pygame画一条虚线?

    我需要在坐标系上绘制正弦波和余弦波 就像在this https i stack imgur com DGI8g png图片 除了没能代表以外 我所有的工作都做得很好虚线和曲线与 pygame 一致 我有与我需要的类似的东西 但我怎样才能让它
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 在 Python 中引发异常的正确方法是什么? [复制]

    这个问题在这里已经有答案了 这是简单的代码 import sys class EmptyArgs StandardError pass if name main The first way to raise an exception if
  • 如何在 tkinter 后台运行函数[重复]

    这个问题在这里已经有答案了 我是 GUI 编程新手 我想用 tkinter 编写一个 Python 程序 我想要它做的就是在后台运行一个可以通过 GUI 影响的简单函数 该函数从 0 计数到无穷大 直到按下按钮为止 至少这是我想要它做的 但
  • 使用 Popen 打开进程并获取 PID

    我正在开发一个漂亮的小功能 def startProcess name path Starts a process in the background and writes a PID file returns integer pid Ch
  • PySpark DataFrame 上分组数据的 Pandas 式转换

    如果我们有一个由一列类别和一列值组成的 Pandas 数据框 我们可以通过执行以下操作来删除每个类别中的平均值 df DemeanedValues df groupby Category Values transform lambda g
  • 从 SUDS 中的 SOAP 响应中提取 Cookie

    我必须使用具有多种服务的 API 所有这些都需要来自下面的身份验证的 JSESSION cookie 然而 当我调用下一个服务时 它不会保留 cookie 因此会拒绝它们 from suds client import Client url
  • 如何在 Jupyter Notebook 中选择 conda 环境

    我安装了 Anaconda 5 3 和 Python 3 7 根环境 之后我使用 Python 3 6 创建了一个新环境 py36 我激活了新环境activate py36 conda env list表明环境是活跃的 但是当我启动 Jup
  • 如何通过 API Gateway 使用事件调用类型调用 Lambda 函数?

    文件说 默认情况下 Invoke API 采用 RequestResponse 调用类型 您可以选择通过将 Event 指定为 InitationType 来请求异步执行 因此 我可以发送到我的函数 python 的就是到处都是 Inspi
  • 如何使用 Matplotlib 可视化标量二维数据?

    所以我有一个网格网格 矩阵 X 和 Y 以及标量数据 矩阵 Z 我需要将其可视化 最好是一些 2D 图像 在各点处带有颜色 显示 Z 值 我做了一些研究 但没有找到任何能完全满足我想要的效果的东西 pyplot imshow Z 看起来不错
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无

随机推荐

  • leetcode报错:member access within null pointer of type 'struct ListNode'

    背景 在编写判断单链表是否有环时 出现这错误 错误出现原因 错误出现原因 color Red text 38169 35823 20986 29616 21407 22240 因为试图使用空指针 解决方法 解决方法 color Red te
  • 音频模块的介绍

    一 术语总结 1 HIFI 级 HIFI 一词通常指高保真音频 High Fidelity Audio 是指尽可能保持音频信号的原始质量 让听众感受到最真实的音乐表现 因此 HIFI级 通常指具有高保真音频性能的产品或设备 例如高保真耳机
  • MAC使用Visual Studio Code开发C/C++

    MAC使用Visual Studio Code开发C C 一 前置概念 理解 二 环境准备 三 编译 运行 四 补充 一 前置概念 理解 VS code只是一个纯文本编辑器 editor 不是IDE 集成开发环境 不含编译器 compile
  • html天气插件iframe,分享常用7款天气预报代码iframe嵌入网页方式

    如果在网站上加入天气预报功能 你找不到更好的天气预报代码 可以看下本站和大家分享的7款天气预报代码iframe嵌入网页方式 天气预报代码1 src http appnews qq com cgi bin news qq search cit
  • python:pydub模块

    一 安装 1 安装模块 pip install pydub 2 安装插件 云盘中下载文件ffmpeg 打开电脑上的控制面板 系统 高级系统设置 环境变量 然后双击path 看到如下的界面 然后点新建会出现一个新建的地址栏 你需要在这个新建地
  • 备忘:maven 错误信息: Plugin execution not covered by lifecycle configuration

    在一个pom文件中 由于需要设置了一下几个默认goal的版本号 如下
  • 算法题:回文数

    力扣 思路 用栈 public static boolean isPalindrome int x if x lt 0 return false if x 0 return true 怎么取每位数字 String s String valu
  • 2023-DataWorks数仓开发手册收藏版

    DataWorks开发规范 1 数仓基本概念 1 4 1 ods数据源层表命名规范 1 4 2 dim维表层表命名规范 1 4 3 dwd数据明细层表命名规范 1 4 3 dws数据明细层表命名规范 1 4 4 ads数据应用层表命名规范
  • Docker从入门到精通

    目录 一 初识 Docker 1 Docker概念 2 安装Docker CentOS系统 3 Docker的架构 4 阿里云镜像加速 5 Docker容器虚拟化 与 传统虚拟机比较 二 Docker 服务相关命令 1 启动docker 服
  • 普通树转二叉树:左儿子右兄弟表示法

    这两天在吃力地学DP的优化 被虐地不行不行的 搞个小插曲 左儿子右兄弟 顾名思义 是一棵转换后的树 它是一棵二叉树 一个节点的左子树表示的是原树中这个节点的子节点 一个节点的右子树表示的是这个节点在原树中的兄弟 父节点相同的点 这么表示有什
  • 【机器学习】Reinforcement Learning-强化学习学习笔记

    一 强化学习的定义 1 1 什么是强化学习 首先 强化学习并不是某一种特定的算法 而是一类算法的统称 解决序列决策问题的一类方法 通过寻求最优策略 获取最大回报 强化学习就是智能体从环境到动作映射的学习 以使回报信号 激励信号 函数值最大
  • 在LINUX上安装Memcache服务器(实践记录)

    下载并安装Memcache服务器端 服务器端主要是安装memcache服务器端 下载 http www danga com memcached dist memcached 1 2 2 tar gz memcached 1 4 5 tar
  • Redux原理分析

    Redux原理分析 Redux是什么 很多人认为redux必须要结合React使用 其实并不是的 Redux 是 JavaScript 状态容器 只要你的项目中使用到了状态 并且状态十分复杂 那么你就可以使用Redux管理你的项目状态 它可
  • 如何卸载华为手机内置app

    作者 朱金灿 来源 clever101的专栏 为什么大多数人学不会人工智能编程 gt gt gt 最近自用的华为手机的存储空间快满了 想把手机内置的app清理一下 然后到网上搜索解决方案 大致弄明白了步骤 主要是通过华为手机内置APP卸载工
  • windows下cmd快速生成大文件命令

    fsutil file createnew 文件名 文件大小
  • C/C++中的头文件加上头文件中的ifndef/define/endif有什么作用?

    参考博客 https blog csdn net summer00072 article details 80883514 主要的作用就是防止头文件重复包含了 这个作用在Qt中是已经给你做好了 qt新建一个文件的时候就会直接给你建立完毕
  • Android结合ButterKnife创建自己的BaseActivity(兼容6.0)

    在Android开发中 我们需要创建一个BaseActivity来方便对APP中所有的activity进行统一操作 今天我们就来说说如何结合ButterKnife来打造一个加强版的BaseActivity 不熟悉ButterKnife的朋友
  • 类的默认成员函数【拷贝(复制)构造函数】

    拷贝 复制 构造函数 用一个已经存在的对象初始化另一个新对象时 编译器会自动调用拷贝构造函数 1 拷贝构造函数是构造函数的一种重载形式 2 拷贝构造函数的参数 单个形参 传递const类类型的引用 1 如果传值引用 会引发无穷调用 2 如果
  • Python输出\u编码将其转换成中文

    爬取了下小猪短租的网站出租房信息但是输出的时候是这种 百度了下 python2 7在window上的编码确实是个坑 解决如下 如果是个字典的话要先将其转成字符串 导入json库 然后 这么输出 json dumps data decode
  • python类型提示

    一 类型提示的好处 1 增强代码的可读性 2 IDE中代码提示 3 静态代码检查 第三方库 二 IDE中代码中提示功能 1 为参数与返回数据指定类型 def greeting name str gt str gt str 返回值也可以 re