专栏首页python学习笔记Python查看模块(变量、函数、类)方法

Python查看模块(变量、函数、类)方法

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

查看已导入模块(包)中包含的成员,本节给大家介绍 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() 函数。

原文链接:http://c.biancheng.net/view/2404.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python __file__属性:查看模块的源文件路径

    前面章节提到,当指定模块(或包)没有说明文档时,仅通过 help() 函数或者 __doc__ 属性,无法有效帮助我们理解该模块(包)的具体功能。在这种情况下,...

    风之随想
  • Python创建包,导入包

    《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含“__init__.py”文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下 ...

    风之随想
  • python第三方库的安装pip的使用与换源

    python和其他语言一样,也有大量的第三方库,在安装python时默认都会安装pip,安装了pip后,windows在cmd.exe下可以运行pip,linu...

    风之随想
  • thinkphp实现模板切换

    thinkphp实现模板切换 首先在后台某个接口读取模板 Admin\Common\function.php /*  * 获取模板目录  */ function...

    96php.cn
  • 聊一下微信视频号

    细心的小伙伴们可能都发现了,微信最近悄悄上线了「视频号」功能,如下图,入口就在朋友圈的下面:

    谭庆波
  • Redis命令详解:Sorted Sets

    Sorted Set(也称ZSET)和Set一样也是string类型的集合,你可以将它理解为Java中SortedSet和HashMap的集合体,一方面它是一个...

    Jackeyzhe
  • python-查看帮助

    1.列出模块定义的标识符(类、函数、变量)   列出对象定义的标识符(函数、变量)   列出方法定义的标识符(变量)

    py3study
  • 《你不知道的JavaScript》:js类型的注意点

    可以使用typeof来查看值的类型,它返回的是类型的字符串值。但有一种类型和它的字符串值并不一一对应:

    前端_AWhile
  • python中有帮助函数吗

    python中的dir()函数是一个非常重要的函数,它可以帮助我们查看函数的功能和特性。

    砸漏
  • php遍历目录下文件并按修改时间排序操作示例

    本文实例讲述了php遍历目录下文件并按修改时间排序操作。分享给大家供大家参考,具体如下:

    砸漏

扫码关注云+社区

领取腾讯云代金券