0

刚刚开始使用“潜入 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"
>>> 

我尝试了许多排列,包括"""#评论。没有喜悦。哪里有问题?

4

1 回答 1

2

你所拥有的应该工作;一些可能的原因:

  • 您正在编辑不同的文件
  • 编辑正确的文件后,您还没有退出并重新启动解释器

更新:

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

  • reload不是递归的

换句话说,如果你的odbchelper导入odbcstuff和你reload(odbchelper)odbcstuff将不会被重新加载。

  • reload不更新其他现有对象

如果你试图绕过reloadwith的非递归性质

import odbcstuff
reload(odbcstuff)

odbcstuff看到的odbchelper还是旧的;你还需要一步:

odbchelper.odbcstuff = odbcstuff     # update odbchelper with the reloaded odbcstuff

正如你所看到的,这对于几个依赖模块来说是相当乏味的。所以继续使用reload,但如果事情仍然无法正常工作,请退出并重新启动。

于 2013-01-23T02:37:21.163 回答