广州网站建设建设,网站设计方案和技巧,制作网站商,傻瓜网站开发工具在使用 dir() 函数和 __all__ 变量的基础上#xff0c;虽然我们能知晓指定模块#xff08;或包#xff09;中所有可用的成员#xff08;变量、函数和类#xff09;#xff0c;比如#xff1a;import string
print(string.__all__)程序执行结果为#xff1a;[ascii_lett…在使用 dir() 函数和 __all__ 变量的基础上虽然我们能知晓指定模块或包中所有可用的成员变量、函数和类比如import string
print(string.__all__)程序执行结果为[ascii_letters, ascii_lowercase, ascii_uppercase, capwords, digits, hexdigits, octdigits, printable, punctuation, whitespace, Formatter, Template]但对于以上的输出结果对于不熟悉 string 模块的用户还是不清楚这些名称分别表示的是什么意思更不清楚各个成员有什么功能。针对这种情况我们可以使用 help() 函数来获取指定成员甚至是该模块的帮助信息。以前面章节创建的 my_package 包为例该包中包含 __init__.py 、module1.py 和 module2.py 这 3 个模块它们各自包含的内容分别如下所示#***__init__.py 文件中的内容***
from my_package.module1 import*
from my_package.module2 import*#***module1.py 中的内容***
#module1.py模块文件
defdisplay(arc):直接输出指定的参数
print(arc)#***module2.py中的内容***
#module2.py 模块文件
class CLanguage:CLanguage是一个类其包含display() 方法
defdisplay(self):
print(http://csdn.net/python/)现在我们先借助 dir() 函数查看 my_package 包中有多少可供我们调用的成员import my_package
print([e for e indir(my_package)ifnot e.startswith(_)])程序输出结果为[CLanguage, display, module1, module2]通过此输出结果可以得知在 my_package 包中有以上 4 个成员可供我们使用。接下来我们使用 help() 函数来查看这些成员的具体含义以 module1 为例import my_package
help(my_package.module1)输出结果为Help on module my_package.module1 in my_package:NAME my_package.module1 - #module1.py模块文件FUNCTIONS display(arc) 直接输出指定的参数FILE c:\users\mengma\desktop\my_package\module1.py通过输出结果可以得知module1 实际上是一个模块文件其包含 display() 函数该函数的功能是直接输出指定的 arc 参数。同时还显示出了该模块具体的存储位置。当然有兴趣的读者还可以尝试运行如下几段代码#输出 module2 成员的具体信息
help(my_package.module2)
#输出 display 成员的具体信息
help(my_package.module1.display)
#输出 CLanguage 成员的具体信息
help(my_package.module2.CLanguage)值得一提的是之所以我们可以使用 help() 函数查看具体成员的信息是因为该成员本身就包含表示自身身份的说明文档本质是字符串位于该成员内部开头的位置。前面讲过无论是函数还是类都可以使用 __doc__ 属性获取它们的说明文档模块也不例外。以 my_package 包 module1 模块中的 display() 函数为例我们尝试用 __doc__ 变量获取其说明文档程序执行结果为 直接输出指定的参数 其实help() 函数底层也是借助 __doc__ 属性实现的。那么如果使用 help() 函数或者 __doc__ 属性仍然无法满足我们的需求还可以使用以下 2 种方法调用 __file__ 属性查看该模块或者包文件的具体存储位置直接查看其源代码后续章节或详细介绍对于非自定义的模块或者包可以查阅 Python 库的参考文档 https://docs.python.org/3/library/index.html。