pydoc:python的文档工具

pydoc是一个python的文档工具,下面介绍一下它的基本用法。这里是用的python2.7。

my.py是来自http://woodpecker.org.cn/abyteofpython_cn/chinese/ch11s07.html的一段代码。内容如下:
#!/usr/bin/python
#-*-encoding:utf-8-*-
"""
这是一个测试
"""

class SchoolMember:
    '''Represents any school member.'''
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print '(Initialized SchoolMember: %s)' % self.name

    def tell(self):
        '''Tell my details.'''
        print 'Name:"%s" Age:"%s"' % (self.name, self.age),

class Teacher(SchoolMember):
    '''Represents a teacher.'''
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary
        print '(Initialized Teacher: %s)' % self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Salary: "%d"' % self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks
        print '(Initialized Student: %s)' % self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Marks: "%d"' % self.marks

t = Teacher('Mrs. Shrividya', 40, 30000)
s = Student('Swaroop', 22, 75)

print # prints a blank line

members = [t, s]
for member in members:
    member.tell() # works for both Teachers and Students

进入my.py所在目录,运行命令:

bash >> pydoc my | cat
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"
Help on module my:

NAME
    my - 这是一个测试

FILE
    /home/letian/Desktop/my.py

CLASSES
    SchoolMember
        Student
        Teacher
    
    class SchoolMember
     |  Represents any school member.
     |  
     |  Methods defined here:
     |  
     |  __init__(self, name, age)
     |  
     |  tell(self)
     |      Tell my details.
    
    class Student(SchoolMember)
     |  Represents a student.
     |  
     |  Methods defined here:
     |  
     |  __init__(self, name, age, marks)
     |  
     |  tell(self)
    
    class Teacher(SchoolMember)
     |  Represents a teacher.
     |  
     |  Methods defined here:
     |  
     |  __init__(self, name, age, salary)
     |  
     |  tell(self)

DATA
    member = <my.Student instance>
    members = [<my.Teacher instance>, <my.Student instance>]
    s = <my.Student instance>
    t = <my.Teacher instance>
运行命令:
bash >> pydoc my.SchoolMember | cat
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"
Help on class SchoolMember in my:

my.SchoolMember = class SchoolMember
 |  Represents any school member.
 |  
 |  Methods defined here:
 |  
 |  __init__(self, name, age)
 |  
 |  tell(self)
 |      Tell my details.
运行命令:
bash >> pydoc my.t | cat
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"
Help on instance of Teacher in my:

my.t = class Teacher(SchoolMember)
 |  Represents a teacher.
 |  
 |  Methods defined here:
 |  
 |  __init__(self, name, age, salary)
 |  
 |  tell(self)
-k参数用来查找关键字。例如:
bash >> pydoc -k pyQt4
PyQt4 
PyQt4.Qt 
PyQt4.QtAssistant 
PyQt4.QtCore 
PyQt4.QtDBus 
PyQt4.QtDeclarative 
PyQt4.QtDesigner 
PyQt4.QtGui 
PyQt4.QtHelp 
PyQt4.QtNetwork 
PyQt4.QtScript 
PyQt4.QtScriptTools 
......

我们也可以利用-p参数指定端口,以在本机上查看所有模块的文档,例如:
bash >> pydoc -p 8088
在浏览器中访问http://127.0.0.1:8088/即可,界面简洁大方。

下面的命令执行后会有图形化界面(Tk)出现:
bash >> pydoc -g
下面的命令会为urllib2的文档生成urllib2.html文件:
bash >> pydoc -w  urllib2
pydoc也是一个python类库,下面是在ipython下的一个示例:
bash >> ipython
Python 2.7.4 (default, Sep 26 2013, 03:20:26) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: pwd
Out[1]: u'/home/letian/Desktop'

In [2]: import my
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"

In [3]: import pydoc

In [4]: pydoc.
pydoc.Doc                   pydoc.locate
pydoc.ErrorDuringImport     pydoc.lower
pydoc.HTMLDoc               pydoc.md
pydoc.HTMLRepr              pydoc.os
pydoc.Helper                pydoc.pager
pydoc.ModuleScanner         pydoc.pathdirs
pydoc.Repr                  pydoc.pipepager
pydoc.Scanner               pydoc.pkgutil
pydoc.TextDoc               pydoc.plain
pydoc.TextRepr              pydoc.plainpager
pydoc.allmethods            pydoc.re
pydoc.apropos               pydoc.render_doc
pydoc.classify_class_attrs  pydoc.replace
pydoc.classname             pydoc.resolve
pydoc.cli                   pydoc.rfind
pydoc.cram                  pydoc.rstrip
pydoc.deque                 pydoc.safeimport
pydoc.describe              pydoc.serve
pydoc.doc                   pydoc.source_synopsis
pydoc.expandtabs            pydoc.split
pydoc.extract_tb            pydoc.splitdoc
pydoc.find                  pydoc.strip
pydoc.getdoc                pydoc.stripid
pydoc.getpager              pydoc.synopsis
pydoc.gui                   pydoc.sys
pydoc.help                  pydoc.tempfilepager
pydoc.html                  pydoc.text
pydoc.imp                   pydoc.ttypager
pydoc.importfile            pydoc.types
pydoc.inspect               pydoc.visiblename
pydoc.isdata                pydoc.warnings
pydoc.ispackage             pydoc.writedoc
pydoc.ispath                pydoc.writedocs
pydoc.join                  

In [4]: pydoc.describe.__doc__
Out[4]: 'Produce a short description of the given thing.'

In [5]: pydoc.describe(my.t)
Out[5]: 'instance of Teacher'

In [6]: pydoc.describe(my)
Out[6]: 'module my'

In [7]: pydoc.describe(my.SchoolMember)
Out[7]: 'class SchoolMember'

In [8]: pydoc.doc(my.SchoolMember)
Python Library Documentation: class SchoolMember in module my

class SchoolMember
 |  Represents any school member.
 |  
 |  Methods defined here:
 |  
 |  __init__(self, name, age)
 |  
 |  tell(self)
 |      Tell my details.
ipython和pydoc对学习python的其他类库会有较大的帮助。

转载于:https://my.oschina.net/letiantian/blog/175119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值