2011-10-21 53 views
4

如果我只有文件的名称,是否有方法获取python文件的doc字符串?例如,我有一个名为a.py的python文件。我知道它有一个文档字符串(之前是强制的),但不知道它的内部结构,即它是否有任何类或主类等?我希望我不会忘记的东西很明显 如果我知道它有一个主要的功能,我可以做这种方式是使用进口获取python文件的doc字符串

 filename = 'a.py' 
    foo = __import__(filename) 
    filedescription = inspect.getdoc(foo.main()) 

我不能做这种方式:

 filename.__doc__ #it does not work 

回答

3

你应该做的事...

foo = __import__('a') 
mydocstring = foo.__doc__ 

或者更简单的...

import a 
mydocstring = a.__doc__ 
+1

啊哈得到它采用进口使其成为一个对象,因此.__一只是当作一个字符串,从而doc__会给出工作,否则失败。 –

0

如果你需要的模块的文档字符串你已经在:

import sys 
sys.modules[__name__].__doc__ 
1
import ast 

filepath = "/tmp/test.py" 

file_contents = "" 
with open(filepath) as fd: 
    file_contents = fd.read() 
module = ast.parse(file_contents) 
docstring = ast.get_docstring(module) 
if docstring is None: 
    docstring = "" 

print(docstring)