相关疑难解决方法(0)

用装饰器修改python docstring:这是个好主意吗?

python docstring必须作为文字字符串给出; 但有时为几个函数(例如,不同的构造函数)创建类似的文档字符串是有用的,或者几个访问方法可能接受相同的参数列表(然后依赖于相同的隐藏方法),因此使用相同的描述会很好到处.对于这种情况,我可以通过赋值来构造文档字符串__doc__,我通过简单的装饰器来完成.系统工作得非常好(在python 2中),我很高兴它是多么简单,清晰和封装良好.

问题:这是个好主意吗?特别是,是否存在会被此设置混淆的工具(例如,从源提取文档字符串而不是从字节码中提取文档字符串的任何内容).解决方案仍然可以在python 3中运行吗?还有其他原因或情况会导致这种情况不明智吗?

python

6
推荐指数
1
解决办法
890
查看次数

将docstring设置为def中的表达式

我想以设置func_doc(作为表达) def.

def f():
    '''My function help''' #Set the docstring

def g():
    "My function " + "help" # An expression, so not read as a docstring
    # can I put something here to set the docstring as an expression?
g.func_doc # is None
g.func_doc = "My function " + "help" # This works
Run Code Online (Sandbox Code Playgroud)

这可能吗?

(我可以考虑这样做的两个原因:从模块导入函数(并且您也想导入文档字符串)和使用词法分析器.)

python docstring

4
推荐指数
1
解决办法
1448
查看次数

是否可以在文档字符串中包含常量的值?

我想这样做:

FOO_CONSTANT = 1

def foo():
  """asdf """ + str(FOO_CONSTANT)

print(foo.__doc__)
Run Code Online (Sandbox Code Playgroud)

哪个应该打印:

asdf 1
Run Code Online (Sandbox Code Playgroud)

但相反它打印

None
Run Code Online (Sandbox Code Playgroud)

我可以获得预期的输出

FOO_CONSTANT = 1

def foo():
  """asdf """

foo.__doc__ += str(FOO_CONSTANT)
print(foo.__doc__)
Run Code Online (Sandbox Code Playgroud)

但是将文档字符串分散到代码中感觉很糟糕。

是否可以在文档字符串中包含常量的值?

PS:我发现是远程相关的。尝试的方法也不会生成有效的文档字符串,请注意,它是关于生成动态文档字符串,而 myFOO_CONSTANT预计不会更改。我只是想避免重复自己。该名称FOO_CONSTANT对于文档字符串的读者来说没有任何意义,但该值却具有意义,并且它出现在几个我不想重复的文档字符串中。

python docstring python-2.7

3
推荐指数
1
解决办法
819
查看次数

标签 统计

python ×3

docstring ×2

python-2.7 ×1