python 的常用工具(Python静态类型检查新工具之pyright 使用指南)
python 的常用工具
Python静态类型检查新工具之pyright 使用指南python是一门动态类型的语言,民间流传一种说法叫”动态一时爽,重构火葬场”,听起来够吓人的,好在这门语言在不断地改进,包括对 pep484 引入的类型提示(type hint),就是在某种程度上,让python能够像静态语言一样支持类型声明,例如:
|
def greeting(name: str ) - > str : return 'hello ' + name |
这就意味着,如果有人调用 greeting函数的时候,传入的参数不是字符串,你用静态类型检查工具一下就能查出来哪些地方没有传入正确类型的值。而 pyright 就是为此而生。
pyright 核心特性:
- typescript 编写,速度快
- 不依赖python环境
- 可配置性强
我们可以直接在 vscode 搜索安装插件 pyright
命令行工具可以使用 npm 安装
sudo npm i -g pyright
如何使用pyright
假设有个python文件 hello.py,里面代码是:
|
def greeting2(age: int ) - > str : print ( "hello" ) greeting2( "nihao" ) greeting2( 1 ) |
注意我给greeting2中的参数类型声明是int,返回的返回值是字符串类型,但是在函数中并没有看到return 返回值。直接运行该文件不会有任何错误
|
python hello.py hello hello |
在vscode中会直接有错误提示信息:
如果我们用 pyright 检查代码,输出信息:
pyright hello.py
finding source files
found 1 source files
analyzed 1 file in 1.546sec
/users/xxxx/workspace/my/draft/hello.py
function with declared type of str must return value (1, 28)
argument of type 'str' cannot be assigned to parameter of type 'int' (4, 11)
2 errors, 0 warnings
find source files: 0.001sec
read source files: 0.012sec
tokenize: 0.085sec
parse: 0.17sec
post-parse walker: 0.147sec
semantic analyzer: 0.293sec
type analyzer: 0.766sec
提示有两处问题:
- function with declared type of str must return value (1, 28),函数声明返回str类型的值,但是却没有返回
- argument of type 'str' cannot be assigned to parameter of type 'int' (4, 11), 字符串值不能复制给int类型参数
剩下的事情就是按照错误提示修正, 正如 pep484 所说的那样,type hint is not role , is tool。 它并不是规则,只是一个工具,帮助我们规避某些错误。即使你传错了参数,程序编译时并不会报错,只有执行到具体的业务代码的时候才会出错。
github地址:https://github.com/microsoft/pyright
总结
以上所述是小编给大家介绍的python静态类型检查新工具之pyright 使用指南,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://foofish.net/pyright.html
- python的基础数据结构有哪些(详解python的四种内置数据结构)
- python小程序编程代码(python实现烟花小程序)
- python函数操作大全(Python的高阶函数用法实例分析)
- python编写一个聊天机器人(不到20行代码用Python做一个智能聊天机器人)
- python抽奖代码教程(python实现抽奖小程序)
- python实现层次遍历二叉树(Python实现的序列化和反序列化二叉树算法示例)
- python数字图像处理入门(python图像处理入门一)
- python入门知识点总结(深入解析Python小白学习操作列表)
- pythondict排序原理(Python标准库使用OrderedDict类的实例讲解)
- python编写端口扫描器(Python开发网站目录扫描器的实现)
- python解析csv文件存到数据库(python读取csv和txt数据转换成向量的实例)
- pythonpil安装包(基于Python的PIL库学习详解)
- anaconda如何配置python3.7(WIn10+Anaconda环境下安装PyTorch避坑指南)
- python初学篇元组(元组列表字典莫烦python基础)
- 微信小程序企业微信打卡(使用Python实现企业微信的自动打卡功能)
- python类继承和封装(Python面向对象程序设计类的封装与继承用法示例)
- 大女主 汤唯垂青电视圈,搭档朱亚文出演《大明皇妃孙若微传》(汤唯垂青电视圈)
- 红色代表什么(红色代表什么情感和含义)
- 高中数学题(高中数学题型总结及解题方法)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
- 怎么做好SEO(怎么做好seo内容优化)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9