运维开发中inspect自省模块的最佳实践
2017-02-22 00:00
627 查看
简单介绍:
说明:此模块提供了一系列自省函数,可获取模块/类/方法/函数/traceback/帧对象/代码对象的信息
快速安装:
内置模块
测试相关:
inspect.ismodule(object) -> True/False
说明:判断object是否为模块
inspect.isclass(object) -> True/False
说明:判断object是否为类
inspect.ismethod(object) -> True/False
说明:判断object是否为方法
inspect.isfunction(object) -> True/False
说明:判断是否为函数
inspect.isgeneratorfunction(object) -> True/False
说明:判断是否为生成器函数
inspect.isgenerator(object) -> True/False
说明:判断是否为生成器
inspect.isbuiltin(object) -> True/False
说明:是否为内置对象
inspect.isabstract(object) -> True/False
说明:是否为抽象基类
源码相关:
inspect.getdoc(object) -> str
说明:获取object的documentation信息
inspect.getfile(object) -> str
说明:获取object的原始加载文件
堆栈相关:
inspect.stack([context]) -> list
说明:获取运行时基于上下文的堆栈信息
最佳实践:
1. 今天老大安排测试环境下RPS业务服务功能/性能测试,由于RPS开发初期版本迭代更新很快,希望快速定位自动化测试插件异常点,方便快速定位问题,但部分依赖多个子服务的插件,在测试报告中需要包含目标主机/插件名称/函数名称/异常行数/异常信息等字段,而inspect内置模块刚好可以提取运行时堆栈信息~
登录乐搏学院官网http://www.learnbo.com/
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1871279
说明:此模块提供了一系列自省函数,可获取模块/类/方法/函数/traceback/帧对象/代码对象的信息
快速安装:
内置模块
测试相关:
inspect.ismodule(object) -> True/False
说明:判断object是否为模块
inspect.isclass(object) -> True/False
说明:判断object是否为类
inspect.ismethod(object) -> True/False
说明:判断object是否为方法
inspect.isfunction(object) -> True/False
说明:判断是否为函数
inspect.isgeneratorfunction(object) -> True/False
说明:判断是否为生成器函数
inspect.isgenerator(object) -> True/False
说明:判断是否为生成器
inspect.isbuiltin(object) -> True/False
说明:是否为内置对象
inspect.isabstract(object) -> True/False
说明:是否为抽象基类
源码相关:
inspect.getdoc(object) -> str
说明:获取object的documentation信息
inspect.getfile(object) -> str
说明:获取object的原始加载文件
堆栈相关:
inspect.stack([context]) -> list
说明:获取运行时基于上下文的堆栈信息
最佳实践:
1. 今天老大安排测试环境下RPS业务服务功能/性能测试,由于RPS开发初期版本迭代更新很快,希望快速定位自动化测试插件异常点,方便快速定位问题,但部分依赖多个子服务的插件,在测试报告中需要包含目标主机/插件名称/函数名称/异常行数/异常信息等字段,而inspect内置模块刚好可以提取运行时堆栈信息~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python # -*- coding:utf-8 -*- """ # # Authors:limanman # OsChina:http://xmdevops.blog.51cto.com/[/code]# Purpose:#"""# 说明:导入公共模块importinspectimportpprint# 说明:导入其它模块defrps_device():try:raiseValueError,'with value error. 'exceptValueError,e:returninspect.stack()[0][-4:-2], e.messagereturndefrps_client():try:raiseValueError,'with value error.'except& |
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1871279
相关文章推荐
- 基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?
- 基础入门_Python-模块和包.运维开发中__import__动态导入最佳实践?
- 运维开发中日志模块logging的最佳实践
- 基础入门_Python-模块和包.运维开发中watchdog事件监视的最佳实践?
- 运维开发中内建模块getopt的最佳实践
- 基础入门_Python-模块和包.运维开发中内建模块getopt的最佳实践?
- 基础入门_Python-模块和包.运维开发中MySQLdb CRUD操作的最佳实践?
- 基础入门_Python-模块和包.运维开发中日志模块logging的最佳实践?
- 基础入门_Python-模块和包.运维开发中chartdet编码检测的最佳实践?
- Python-模块和包.运维开发中chartdet编码检测的最佳实践
- 【重磅】开发运维自动化的最佳实践探索
- [置顶]游戏引擎开发与应用最佳 实践 【引擎开发篇】 之三 :模块功能描述与设计抽象思想(设计)
- 运维开发中__import__动态导入最佳实践?
- 运维开发中watchdog事件监视的最佳实践
- 游戏引擎开发与应用最佳 实践 【引擎开发篇】 之二 :引擎模块划分(续)
- [置顶]游戏引擎开发与应用最佳 实践 【引擎开发篇】 之三 :模块功能描述与设计抽象思想(设计)
- 基础入门_Python-内建函数.运维开发中eval内建函数的最佳实践?
- 游戏引擎开发与应用最佳 实践 【引擎开发篇】 之一 :目录、引擎模块划分
- DevOps故障排-linux服务器运维最佳实践---读书笔记
- Android 快速开发系列 ORMLite 框架最佳实践