文章目录

  • 前言
  • IDE配置
  • 标记Deprecated示例

前言

在python中,如果你有函数或者类当下没有作用,或者即将废弃,但是你又不想删除,那么你可以标记为deprecated。其实我更想做的是什么?能够让我标记的函数或者类在其它地方使用的时候,能有直观的提示。用Idea做java开发的童鞋肯定很清楚,java代码中的类或者函数只要标记了@Deprecated注解,在所有使用它的地方都会有删除线很直观的标记出来。
那么,PyCharm或者Idea使用Python插件是否也有对Python进行deprecated检测并提示的能力呢?
有!

IDE配置

PyCharm和Idea非常的智能,能识别Python的函数或类是否被标记为deprecated,并展示删除线。
preferences->Editor-inspections,搜索框中输入Deprecated,在Python那类中看是否有勾选住,默认应该是勾选的。

咱们看描述:

This inspection highlights usages of Python functions, classes or methods which are marked as deprecated (which raise a DeprecationWarning or a PendingDeprecationWarning).

意思是说:检查python的函数、类、或者类函数是否标记了deprecated(抛出DeprecationWarning或者PendingDeprecationWarning警告),如果标记了会高亮(实际是删除线)。

标记Deprecated示例

import warningsdef some_old_function(x, y):# 这行告警代码被识别到warnings.warn("some_old_function is deprecated", DeprecationWarning)return x + ysome_old_function(12, 34)


关键是warnings.warn("some_old_function is deprecated", DeprecationWarning)这行代码被PyCharm识别到了。
注意,上面只是让IDE能达到识别废弃并使用删除线提示而已。

如果想要生成doc帮助文档的话,可以安装Deprecated模块结合使用。
pip install Deprecated

安装之后像下面这样使用即可:

import warningsfrom deprecated.sphinx import deprecatedwarnings.filterwarnings("always")@deprecated(version='1.0', reason="This function will be removed soon")
def some_old_function(x, y):warnings.warn("some_old_function is deprecated", DeprecationWarning)return x + yif __name__ == '__main__':some_old_function(12, 34)help(some_old_function)


执行之后的结果如下:

@deprecated注解会更改函数的__doc__属性,可以看到帮助文档被打印了出来。如果想要打印出告警信息的话,需要在前面加上warnings.filterwarnings("always")
这样就能看到打印出来的告警信息了。

Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线相关推荐

  1. java 标注 废弃,Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线...

    文章目录 前言 IDE配置 标记Deprecated示例 前言 在python中,如果你有函数或者类当下没有作用,或者即将废弃,但是你又不想删除,那么你可以标记为deprecated.其实我更想做的是 ...

  2. python里面的类和对象_Python中类和对象在内存中是如何保存?

    类以及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份,大致如下图: 如上图所示,根据类创建对象时,对象中除了封装 name 和 age 的值之外,还会保存一个类对象指针,该值 ...

  3. python 如何删除excel中带有删除线的特定字符串保留没有删除线的单词

    python 如何删除excel中带有删除线的特定字符串保留没有删除线的单词 注意:经验证 Mac必须安装Microsoft Excel app 但不一定OK import xlwings as xw ...

  4. python如何定义类_Python 面向对象

    Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...

  5. 刻意练习:Python基础 -- Task10. 类与对象

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  6. Python模块与类

    2019独角兽企业重金招聘Python工程师标准>>> 类 类的定义,继承 类中的属性,类属性和实例属性的区别及访问方式 变量名以"_"或"__&quo ...

  7. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object):"""类里定义一类事物共同的技能.可以是变量,也可是函数.& ...

  8. python 笔记 之 类的继承与重写

    2019独角兽企业重金招聘Python工程师标准>>> ''' 6.继承 super 重写 调用:先找子类中的方法,如果子类中找不到就到父类中找 多继承:如果父类中都有该方法,那么先 ...

  9. python装饰器类-python_类装饰器

    一.定义 装饰器就是一个给对象添加额外功能的函数,其本质是函数.它的基本构造:高阶函数+函数嵌套+闭包.基础知识讲解详见:https://blog.51cto.com/10836356/2095118 ...

  10. python装饰器类-Python 装饰器装饰类中的方法

    title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] categ ...

最新文章

  1. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
  2. 计算机科学速成课36:自然语言处理
  3. 【kafka】Found a message larger than the maximum fetch size of this consumer on topic
  4. 链队列出入队列c语言程序,链队列简单操作(c语言)
  5. 查看sql_一键查看Oracle数据库当前SQL_WORKAREA_ACTIVE的相关操作
  6. 登录状态 token
  7. 关于Eclipse(MyEclipse)中一次性批量导入多个项目Project.
  8. 将netcat-openbsd替换成为netcat-traditional
  9. 刚才调试了个mysql中文乱码的问题
  10. 2019年阿里最新java编程规范-在线版
  11. python主函数_Python main() 函数
  12. 第1章:基本句型及补语
  13. matlab升压斩波电路,升压斩波电路课程设计汇总
  14. SQL统计语句总结(运用场景:运营分析,财务分析等)
  15. db mysql error_list
  16. Python:网络爬虫入门
  17. 【HCNP-OSPF】LSA
  18. 博图HMI仿真无法连接实际PLC进行监控
  19. C++ 快速傅里叶变换
  20. 学习AI人工智能,你必须要知道的4件事!

热门文章

  1. kuangbin 最小生成树
  2. 学生信息管理系统(PHP)
  3. 下载并打开Github源码教程
  4. List<? extends T>和List<? super T>之间的区别
  5. 小罗说敏捷 | 使用关键路径法优化项目进度管理
  6. 唤醒手腕Python全栈工程师学习笔记(人工智能篇)
  7. 牛年交个朋友,重新认识一下云和恩墨!
  8. LODOP直接用base64码输出图片
  9. 使用esp8266前的网络基础
  10. win7桌面图标箭头怎么去掉