文档章节

pyCharm中python对象的自动提示问题

兴趣使然的程序员
 兴趣使然的程序员
发布于 2017/07/03 14:46
字数 534
阅读 5425
收藏 0

python和Java不同,是一门动态语言:在创建对象的时候,我们并不需要声明对象的类型。

这在简化书写方面带来了极大的便利,但是对于IDE来说,智能地辨别这些类型,并给出相应的代码提示就十分困难。

比如爬虫的代码:

IDE通常无法有效地识别类型,然后给出相应的提示。

实际上pycharm提供了称为Type Hint的方法,来给IDE进行类型提示,以更便捷地获取代码提示。参考网站:https://www.jetbrains.com/help/pycharm/type-hinting-in-pycharm.html

下面是几种获取代码提示的方法:

1、自己写的方法中添加类型提示

在定义方法的时候,可以为参数设置类型,如果设置了类型,就可以在接下来的代码里获取相应的提示,比如:

这样就可以顺利地获取提示。

同样如果方法有返回值的话,可以为方法的返回设置类型,这样在使用方法获取对象时,就可以在接下来的代码里获取相应的提示,比如:

这样也可以顺利地获取提示。

2、使用注解注释本地变量

如果遇到使用第三方包的情况,而且提供包的人并没有给完整的type hint,再去重写他们的方法显然不现实,这时可以通过在对象后添加注解来提示IDE,以获取提示。比如:

格式为:

# type: 对应的类型

3、使用 Python stub files来储存类型提示

python stub文件实际上就是将代码和注解分离,单独将注解存在同名的.pyi文件中。例如:

这样就可以将代码从繁琐的类型提示中解放出来。注意到方法左侧有一个*,这代表存在这个方法的stub。

4、在doc string中声明类型

python语法中,提供以三个双引号包围的文档字符串,用于方法的注释。

这里不进行详述。

© 著作权归作者所有

兴趣使然的程序员
粉丝 23
博文 112
码字总数 87412
作品 0
深圳
程序员
私信 提问
如何在Pycharm中使用GitHub,一文带你深入

  Pycharm是当前进行Python开发,尤其是Django开发最好的IDE,GitHub是程序员的圣地,几乎人人都在用,就不详细介绍两者了。   本文假设你对Pycharm和Github都有一定的了解,并且希望在P...

菜鸟学Python
2018/07/28
0
0
【更新】PyCharm v2018.3.2发布|附下载

下载PyCharm最新版本 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
01/09
39
0
PyCharm 2017.2.3 发布,支持 Docker Compose

PyCharm 2017.2.3 已发布,该版本包含以下改进: 支持 Docker Compose v3.0 和 v3.1 files (3.2 和 3.3 版本尚未支持,希望在 PyCharm 2017.3 中能实现) Python 控制台用于控制 Docker 和 Do...

局长
2017/09/07
1K
3
Python编程利器-Pycharm

PyCharm是由JetBrains打造的一款Python IDE。我们知道,VS2010的重构插件Resharper就是出自JetBrains之手。那么,PyCharm有什么吸引人的特点呢? 首先,PyCharm用于一般IDE具备的功能,比如,...

Start-up
2012/06/15
2.4K
1
PyCharm 2017.3 发布,Python IDE

PyCharm 2017.3 发布了。PyCharm 是由 JetBrains 打造的一款 Python IDE。PyCharm 具备用于一般 IDE 的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、...

达尔文
2017/11/30
2.2K
7

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
55分钟前
174
4
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
10
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部