前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量、函数或者类)呢?

查看已导入模块(包)中包含的成员,本节给大家介绍 2 种方法。

查看模块成员:dir()函数

事实上,在前面章节的学习中,曾多次使用 dir() 函数。通过 dir() 函数,我们可以查看某指定模块包含的全部成员(包括变量、函数和类)。注意这里所指的全部成员,不仅包含可供我们调用的模块成员,还包含所有名称以双下划线“__”开头和结尾的成员,而这些“特殊”命名的成员,是为了在本模块中使用的,并不希望被其它文件调用。

这里以导入 string 模块为例,string 模块包含操作字符串相关的大量方法,下面通过 dir() 函数查看该模块中包含哪些成员:

import string

print(dir(string))

程序执行结果为:

['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']

可以看到,通过 dir() 函数获取到的模块成员,不仅包含供外部文件使用的成员,还包含很多“特殊”(名称以 2 个下划线开头和结束)的成员,列出这些成员,对我们并没有实际意义。

因此,这里给读者推荐一种可以忽略显示 dir() 函数输出的特殊成员的方法。仍以 string 模块为例:

import string

print([e for e in dir(string) if not e.startswith('_')])

程序执行结果为:

['Formatter', 'Template', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']

显然通过列表推导式,可在 dir() 函数输出结果的基础上,筛选出对我们有用的成员并显示出来。

查看模块成员:__all__变量

除了使用 dir() 函数之外,还可以使用 __all__ 变量,借助该变量也可以查看模块(包)内包含的所有成员。

仍以 string 模块为例,举个例子:

import string

print(string.__all__)

程序执行结果为:

['ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace', 'Formatter', 'Template']

显然,和 dir() 函数相比,__all__ 变量在查看指定模块成员时,它不会显示模块中的特殊成员,同时还会根据成员的名称进行排序显示。

不过需要注意的是,并非所有的模块都支持使用 __all__ 变量,因此对于获取有些模块的成员,就只能使用 dir() 函数。

python 如何查看模块所有方法-Python查看模块(变量、函数、类)方法相关推荐

  1. python函数和方法概念_python基础学习——函数和方法的区别与联系

    以下是综合多家说法的个人理解总结,仅为做到理解它们的区别与联系,不保证严谨. 函数 函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数来使用. 独立的函数是函数(像 ...

  2. python函数与方法的区别_python中函数和方法有哪些区别

    python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...

  3. java调用其他程序吗_java本地方法如何调用其他程序函数,方法详解

    JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java 1.1 开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许J ...

  4. 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换

    目录 二变量函数的傅里叶变换 二维冲激及其取样性质 二维连续傅里叶变换对 二维取样和二维取样定理 图像中的混叠 二维离散傅里叶变换及其反变换 二变量函数的傅里叶变换 二维冲激及其取样性质 两个连续变量 ...

  5. Java获取方法信息(某一函数,方法也是一个对象)

    目录 理论 演示 理论 java中万事万物都是对象,某一个类的方法,也是对象,所以对象中的一个方法也是一个对象,所以后期才会有注解,方便开发者的编程. 演示 整体项目结构如下: 演示获取基本数据! 源 ...

  6. php判断成员属性是否存在,PHP判断{函数/类/方法/属性}是否存在

    1.php判断系统函数或自己写的函数是否存在 bool function_exists ( string $function_name ) 判断函数是否已经定义,例如:if(function_exis ...

  7. python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数

    工作中,我们使用一些之前没用到过的模块,使用时需要了解一下这个模块中的一些类的方法或属性,怎么做呢?目前我比较常用的两款IDE"Pycharm"和"VSCode" ...

  8. 关于学习Python的一点学习总结(39->导入模块)

    79.1.导入模块: 先举个例子:>>> array=random.randint(1,10)Traceback (most recent call last):File " ...

  9. python变量定义必须赋值_Python3单行定义多个变量或赋值方法

    Python3单行定义多个变量或赋值方法 你甚至可以在一行内将多个值赋值给多个变量 >>> a , b = 45, 54 >>> a 45 >>> ...

  10. python双循环zip_Python 并行遍历zip()函数使用方法

    今天我们要讲主题是python并行遍历zip()函数使用方法.在讲range()函数使用方法时我们知道了,range()可以在for循环中是以非完备的方式遍历序列,那么zip()并行遍历又是怎么工作的 ...

最新文章

  1. 淘宝精品案例JS、jQuery
  2. java开启线程的方法_Java有几种方法开启线程?怎么实现带有返回值的线程?
  3. 雨课堂c语言考试题库2020,雨课堂2020题目答案,雨课堂2020作业答案
  4. Yesterday、Today、Tomorrow - 昨天、今天、明天
  5. php 获取服务器,PHP 获取服务器详细信息
  6. webpack --- [读书笔记] webpack中常用的一些配置项
  7. linux libbz2.so.1,libbz2.so.1.0: cannot open shared object file: No such file or directory
  8. arm export 汇编_C/C++与汇编混合编程有什么好处?
  9. 使用Apache HttpComponents访问https接口(及老版本DefaultHttpClient deprecated)
  10. 软件测试工程师面试必备技能
  11. spark++读写mysql_spark读写mysql
  12. 继承(父类为虚方法以及子类的重写)
  13. 图论最短路问题和最小生成树问题的区别
  14. 最优矩阵链乘(动态规划)
  15. python输出姓名_如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律...
  16. 单片机c语言开发实验心得,单片机实训心得报告【三篇】
  17. Java1.8开始为什么用元空间替换永久代
  18. 2019年:两成开发者月薪超1.7万,算法工程师最紧缺
  19. ARIMA(Autoregressive Integrated Moving Average Model)
  20. 网上舆情分析报告写作框架及六大技巧

热门文章

  1. IT行业常见职位职业路线图
  2. B/S结构的一机多屏的技术论证及可行性讨论
  3. 如何获取启动页activity
  4. Android adb shell 命令
  5. 基于Forms-Roles认证方式目录权限配置的学习
  6. python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
  7. python使用符号 表示单行注释-【转】Pyhton 单行、多行注释符号使用方法及规范...
  8. python中类方法与实例方法的区别-python中类方法,实例方法,静态方法的作用和区别...
  9. 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝
  10. python工程师薪资坑吗-不在打工就在找坑的路上,3年+程序员都爱跳槽?