让你的Python代码实现类型提示功能

yipeiwu_com5年前Python基础

Python是一种动态类型语言,这意味着我们在编写代码的时候更为自由,但是与此同时IDE无法向静态类型语言那样分析代码,及时给我们相应的提示。为了解决这个问题,Python 3.6 新增了几个特性PEP 484PEP 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设计】。

相关文章

pycharm远程开发项目的实现步骤

pycharm远程开发项目的实现步骤

你是不是在学习python的时候在使用虚拟机系统进行开发,来回切换很是不方便,那么今天给大家推荐一个pycharm强大的功能。 接下来我们利用这个django项目创建一个子app,测验...

Python机器学习之SVM支持向量机

Python机器学习之SVM支持向量机

SVM支持向量机是建立于统计学习理论上的一种分类算法,适合与处理具备高维特征的数据集。 SVM算法的数学原理相对比较复杂,好在由于SVM算法的研究与应用如此火爆,CSDN博客里也有大量的...

Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。 先看Python官方文档中对这几个内置函数的描述: bin(x) Convert an inte...

使用turtle绘制五角星、分形树

使用turtle绘制五角星、分形树

本文实例为大家分享了使用turtle绘制五角星和分形树的具体代码,供大家参考,具体内容如下 turtle 库 与之前程序的区别: 没有显示的input()与output() 没...

Python 12306抢火车票脚本

本文实例为大家分享了Python 12306抢火车票的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- from splinter.browser...