为什么不显示这个文档?

时间:2013-01-23 01:59:41

标签: python

刚开始使用“Dive Into Python”。出于某种原因,我无法显示文档字符串。

#!/usr/bin/env python

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters
    """
    # Returns string
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
    myParams = {"server":   "mpilgrim", \
                "database": "master",   \
                "uid":      "sa",       \
                "pwd":      "secret"    \
                }
    print buildConnectionString(myParams)

在控制台:

>>> import odbchelper
>>> print odbchelper.buildConnectionString.__doc__
None
>>> 

这很好用:

>>> import sys
>>> sys.path.__doc__
"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items"
>>> 

我尝试了许多修改,包括"""#条评论。没有快乐。问题在哪里?

1 个答案:

答案 0 :(得分:2)

你应该做些什么;一些可能的原因:

  • 您正在编辑其他文件
  • 编辑正确的文件
  • 后,您尚未退出并重新启动解释程序

更新

如果你使用reload来避免退出并重新启动解释器(或IDLE或你正在使用的任何东西),你需要注意几个陷阱:

  • reload不是递归的

换句话说,如果您的odbchelper导入odbcstuffreload(odbchelper),则odbcstuff将不会重新加载。

  • reload不会更新其他现有对象

如果您尝试使用

来解决reload的非递归特性
import odbcstuff
reload(odbcstuff)

odbcstuff看到的odbchelper仍然是旧的odbchelper.odbcstuff = odbcstuff # update odbchelper with the reloaded odbcstuff ;你还需要一步:

reload

正如您所看到的,对于多个依赖模块而言,这将是相当繁琐的。所以继续使用{{1}},但如果仍然无法正常工作,请退出并重新启动。