我试着编写一个有两个类的模块。第一类称为文本处理
class TextProcessing(object):
""" To carry out text processing
"""
def __init__(self,):
pass
它有各种各样的文本预处理方法
类似的另一个类是针对预处理数据的其他数据争用
我将这两个类保存在一个python文件中,使其成为一个模块
现在假设一个用户下载了这个python模块,并希望运行每个类的各种方法
当用户导入模块时,我想提供一些关于模块的文档,每个类的方法,以便用户知道调用哪个函数和传递什么参数
想想scikit学习文档是如何出现在他们的文档页面上的
即使是我们看到的文档
help(some_python_module)
也很好
问题是我没有像sklearn这样的文档页面来显示文档。我想让用户知道在python控制台中导入模块后可以使用的各种方法的文档
有没有一种方法可以在用户导入模块时将文档信息打印到控制台
它可以显示每个类和方法的文档字符串
这是一件非常奇怪的事情,但绝对有可能
最简单的方法就是调用^{} 。虽然它打算从交互式提示符调用,但是没有什么可以阻止您从自己的代码中调用它
当然,您可以而不是提取docstring(它们在每个模块、类和函数上存储为
__doc__
),然后textwrap
自己提取它们,然后print
将它们提取出来,但是如果您试图复制help
所做的相同的事情,那么这将是大量的工作,没有真正的好处唯一棘手的一点是,您要调用帮助系统的对象是“thiscurrentmodule”。你是怎么说的?它有点笨拙,但是您将当前模块的名称命名为
__name__
,因此您可以在sys.modules
中查找它所以:
现在,当您在会话中第一次
import helpful
时,它将打印出help
当然,如果有人试图运行一个执行} :
import helpful
的脚本,而不是从一个交互式会话执行它,那将是非常奇怪的。因此,您可能只希望在交互式会话中执行此操作,方法是选中^{如果有人做了一个
import otherthing
,而那个otherthing
做了一个import helpful
呢?你也会得到同样的帮助,这可能会让人困惑如果这是一个问题,我能想到的唯一实际选择就是检查调用帧是否来自顶层脚本(并且标志是交互式的)。这是一个非常复杂的问题,除非你真的需要,否则你甚至不应该考虑这个问题,所以我将引导你进入^{} 模块,希望你不需要它
相关问题 更多 >
编程相关推荐