在Python语言中,有些库在使用时,在网络上找到的文档不全,这就需要查看相应的Python对象是否包含需要的函数或常量。下面介绍一下,如何查看Python对象中包含哪些属性,如成员函数、变量等,其中这里的Python对象指的是类、模块、实例等包含元素比较多的对象。这里以OpenCV2的Python包cv2为例,进行说明。

由于OpenCV是采用C/C++语言实现,并没有把所有函数和变量打包,供Python用户调用,而且有时网络上也找不到相应文档;还有OpenCV还存在两个版本:OpenCV2和OpenCV3,这两个版本在所使用的函数和变量上,也有一些差别。

1. dir() 函数

dir([object]) 会返回object所有有效的属性列表。示例如下:

$ python

Python 2.7.8 (default, Sep 24 2015, 18:26:19)

[GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import cv2

>>> mser = cv2.MSER()

>>> dir(mser)

['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'detect', 'empty', 'getAlgorithm', 'getBool', 'getDouble', 'getInt', 'getMat', 'getMatVector', 'getParams', 'getString', 'paramHelp', 'paramType', 'setAlgorithm', 'setBool', 'setDouble', 'setInt', 'setMat', 'setMatVector', 'setString']

2. vars() 函数

vars([object]) 返回object对象的__dict__属性,其中object对象可以是模块,类,实例,或任何其他有__dict__属性的对象。所以,其与直接访问__dict__属性等价。示例如下(这里是反例,mser对象中没有__dict__属性):

>>> vars(mser)

Traceback (most recent call last):

File "", line 1, in

TypeError: vars() argument must have __dict__ attribute

>>> mser.__dict__

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'cv2.MSER' object has no attribute '__dict__'

3. help() 函数

help([object])调用内置帮助系统。输入

>>> help(mser)

显示内容,如下所示:

Help on MSER object:

class MSER(FeatureDetector)

| Method resolution order:

| MSER

| FeatureDetector

| Algorithm

| __builtin__.object

|

| Methods defined here:

|

| __repr__(...)

| x.__repr__() <==> repr(x)

|

| detect(...)

| detect(image[, mask]) -> msers

|

| ----------------------------------------------------------------------

| Data and other attributes defined here:

|

| __new__ =

| T.__new__(S, ...) -> a new object with type S, a subtype of T

按h键,显示帮助信息; 按 q 键,退出。

4. type() 函数

type(object)返回对象object的类型。

>>> type(mser)

>>> type(mser.detect)

5. hasattr() 函数

hasattr(object, name)用来判断name(字符串类型)是否是object对象的属性,若是返回True,否则,返回False

>>> hasattr(mser, 'detect')

True

>>> hasattr(mser, 'compute')

False

6. callable() 函数

callable(object):若object对象是可调用的,则返回True,否则返回False。注意,即使返回True也可能调用失败,但返回False调用一定失败。

>>> callable(mser.detect)

True

参考资料

1. https://stackoverflow.com/questions/2675028/list-attributes-of-an-object

2. https://docs.python.org/2/library/functions.html

python怎么知道用哪个库使用-dir、help 查看python 库 对应的方法 和使用相关推荐

  1. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list 或者用 help('modules') 或者用 python -m ...

  2. 怎么看python是64位还是32位_怎样查看python是64位还是32位

    怎样查看python是64位还是32位?下面给大家介绍三种方法: 方法一: 打开IDLE,看第一行提示,例如: 32位系统是这样的 Python 3.5.1 (v3.5.1:37a07cee5969, ...

  3. 爬虫python对电脑要求_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...

    本文由简码编程原创,保留所有版权,转载请注明出处. 本python人工智能爬虫系列教程基于Python3.0版本, 将python结合windows桌面开发工具aardio一起做可视化的开发, 用py ...

  4. python 使用dir() help() 查看一个对象所有拥有的方法和属性

    可以使用python 的内置方法 dir() 或者help() 查看 某个对象所拥有的方法和属性, 二者间的区别是: dir() : 只是得到方法或者属性的名称 help():不但可以得到对象的方法和 ...

  5. 如何查看python是多少位的-请问一下该怎么查看python是32位还是64位?

    潇湘沐 可使用IDLE或者CMD查看.方法一:打开IDLE,看第一行提示,例如:32位系统是这样的 Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01: ...

  6. python 查找函数所在模块和文件位置_查看python的模块和函数帮助文档方法

    python的一个优势是有着大量自带和在线的模块(module)资源,可以提供丰富的功能,在使用这些模块的时候,如果每次都去网站找在线文档会过于耗费时间,结果也不一定准确.因此这里介绍下python自 ...

  7. python正则匹配找到所有的浮点数_如何利用Python抓取静态网站及其内部资源

    遇到的需求 前段时间需要快速做个静态展示页面,要求是响应式和较美观.由于时间较短,自己动手写的话也有点麻烦,所以就打算上网找现成的. 中途找到了几个页面发现不错,然后就开始思考怎么把页面给下载下来. ...

  8. vim-python怎么用_如何在使用 Vim 时访问/查看 Python 帮助

    我是一名新的 Vim 编辑器用户.我用它编写 Python 代码.有没有办法在 vim 中查看 Python 文档而无需访问互联网?假设我的光标在 Python 的 print 关键字下,然后按下 F ...

  9. vim-python怎么用_技术|如何在使用 Vim 时访问/查看 Python 帮助

    我是一名新的 Vim 编辑器用户.我用它编写 Python 代码.有没有办法在 vim 中查看 Python 文档而无需访问互联网?假设我的光标在 Python 的 print 关键字下,然后按下 F ...

  10. 如何查看python有哪些内置函数_如何查看 Python 全部内置变量和内置函数?

    查看python内置函数的方法:1.打开Python IDLE编辑器:2.输入" dir(__builtins__)"命令,按下回车键(Enter)得到Python全部内置变量和函 ...

最新文章

  1. html5开发桌面界面设计,HTML5触摸界面设计与开发
  2. UA MATH636 信息论9 Berlekamp-Welch算法
  3. Alpha 冲刺报告(3/10)
  4. 在Windows上编译最新版本的Hashcat
  5. JS ES6中的箭头函数(Arrow Functions)使用
  6. SQL每日学习——delete语句
  7. php lwm2m,理解COAP/LWM2M/MQTT协议和TCP/UDP协议的关系
  8. 狗猫分类数据集划分详解
  9. 还挺好看!用命令行画思维导图;66天机器学习之旅;斯坦福CS234 强化学习课程;哈佛CS50 计算机科学导论课程;前沿论文 | ShowMeAI资讯日报
  10. Mall谷粒商城(基础篇的开发)
  11. 陈丽莎计算机科学与技术专业,关于表彰我校成人高等学历教育2015届毕业生学习奖和优秀学生干部获奖者的通知...
  12. 计算机替换字体怎么操作,字体管家怎么换字体 电脑更换字体的教程介绍
  13. 获取头条小程序分享二维码
  14. 知道一点怎么设直线方程_已知两点坐标怎样求直线方程
  15. 数学建模 论文 各部分 写作指导 及 获奖技巧讲解【美赛MCM/ICM】
  16. QT5.9用自定义字体修改qlabel字体、大小以及颜色
  17. 1024共码未来(一览中华风华,API First)
  18. 微信小程序,几行代码实现图片瀑布流
  19. JavaScript 中 OnLoad事件用法总结
  20. mysql建表语句enum_mysql创建表语句格式

热门文章

  1. android studio 插件版本号和gradle版本号对应关系
  2. 第2周个人作业:WordCount
  3. in_array 判断问题的疑惑解决。
  4. LETTers比赛第三场 --1003 大明A+B解题报告
  5. asp.net webform 与asp.net mvc 混合开发项目总结
  6. 移动端调试利器------微信开源项目
  7. Machine Vision 浅谈
  8. session和cookie的应用场景和区别
  9. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
  10. Django 应用开发(2)