Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示。为了解决这个问题,Python 3.6 新增了几个特性PEP 484和PEP 526,帮助编辑器为我们提供更智能的提示。这些新特性不会影响语言本身,只是增加一点提示。当你使用比较智能的开发工具比如PyCHarm时,就会感觉到类型提示的方便之处。

变量注解

首先先看看变量注解。它的语法和某些类型后置的语言类似。

# 变量注解

a: int = 5

b: bool = True

f: float = 5.0

s: str = "abc"

声明类型之后,编辑器和IDE就会读取到这个类型注解,然后给予我们相应的提示。程序在运行的时候行为完全不变。

如果是自己编写的类,也可以用作变量注解。

class MyClass:

def fun1(self):

print("fun1")

me: MyClass = MyClass()

me.fun1()

对于较复杂的内置类型、泛型、生成器、自定义类型等,需要引入标准库typing。对于更复杂的类型,请直接参考typing标准库文档。

from typing import TypeVar, Iterable, Tuple, Dict, List

m: Dict[int, int] = {1: 1, 2: 2}

t: Tuple[int, ...] = (1, 2, 3)

l: List[int] = [1, 2, 3, 4]

函数注解

当使用Python编写复杂的函数时,我们常常为没有合适的提示而苦恼。函数注解可以帮助我们解决这个问题。

def add(a: int, b: int) -> int:

return a + b

为函数添加注解之后,当我们调用这个函数的时候,编辑器就会给予对应的提示。当处理大型项目的时候,这个特性会很有用。

函数注解保存在函数的__annotations__属性中,如果你准备编写程序读取它,可以使用这个属性。

print(add.__annotations__)

以上这篇让你的Python代码实现类型提示功能就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 让你的Python代码实现类型提示功能

本文地址: http://www.cppcns.com/jiaoben/python/287189.html

python 功能 代码_让你的Python代码实现类型提示功能相关推荐

  1. python语言必背代码-让你的Python代码实现类型提示功能

    Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示.为了解决这个问题,Python 3.6 新增了几个特性PE ...

  2. python代码-让你的Python代码实现类型提示功能

    Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示.为了解决这个问题,Python 3.6 新增了几个特性PE ...

  3. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  4. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  5. python 功能 代码_挑战“不可能”的代码:你不知道的Python功能

    本文转载自公众号"读芯术"(ID:AI_Discovery) Python看似简单,但实则变化万千,笔者总都能看到一些代码以近乎不可能的方式呈现.这些功能很精妙,以至于我无法想象没 ...

  6. python多分支实现四则运算器代码_一份让Python疯狂加速的工具合集!

    这篇文章会提供一些优化代码的工具.会让代码变得更简洁,或者更迅速. 当然这些并不能代替算法设计,但是还是能让Python加速很多倍. 其实前面讲算法的文章,也有提到过.比如适用于双向队列的 deque ...

  7. python测验5 函数和代码_测验5: 函数和代码复用 (第5周)-单选题

    1.以下选项不是函数作用的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ A. 提 ...

  8. 在树莓派里面运行python代码_树莓派如何运行python程序

    树莓派如何运行python程序 发布时间:2020-09-23 12:03:39 来源:亿速云 阅读:128 作者:小新 这篇文章主要介绍了树莓派如何运行python程序,具有一定借鉴价值,需要的朋友 ...

  9. python数据库模块_十二、Python高级功能之Mysql数据库模块

    Python高级功能之Mysql数据库模块 安装python mysql组件 # yum -y install MySQL-python.x86_64 以下根据实例来说明: >>> ...

最新文章

  1. Codeforces Round #366 (Div. 2)
  2. 湮灭尽头的一点光---炮粒子
  3. 200 switching to ascii mode_【图片】15005377957 三轮车载式液压打井机XYC-200A 型深水井钻机游走乡【地勘吧】...
  4. 不得不赞! CV算法工程师的高效利器
  5. 交换机知识--生成树协议
  6. MDT 2013 从入门到精通之自动化部署WinSer 2012 R2
  7. DS博客作业02--线性表
  8. python中的颜色表
  9. 人脸数据库收集——深度学习
  10. 计算机编程游戏本还是商务本,游戏本和商务本哪个比较适合编程?
  11. 1999-2019中国互联网发展二十年趋势
  12. 【学习笔记】组合恒等式
  13. 可穿戴设备的发展前景
  14. Android Bmob后端云简单使用-增删改查
  15. 修改 navigator.platform 的值
  16. 142.CSS 海盗船加载特效
  17. 微服务化之无状态化和容器化
  18. 论文笔记 -- Fast-LIO -- ESIKF溯源
  19. 商务通传递中文及样式
  20. 电脑的远程控制是什么

热门文章

  1. 从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会
  2. C#与java可以共用的DES加密解密
  3. Mozilla停止对Firefox Hello的支持(采访)
  4. 上海Uber优步司机奖励政策(1月18日~1月24日)
  5. 面向对象数据库NDatabase_初识
  6. php中的单引号与双引号详解
  7. 网页简单配置捉取网购信息
  8. 程序员眼中的UML(2)--克服用例图的恐惧
  9. LVS的工作原理和相关算法
  10. zoj(2110)Tempter of the Bone(DFS+奇偶剪枝)