Docstring风格:我应该真的拥有这么久吗?

时间:2014-08-04 15:34:32

标签: python styles pep8 docstring

我有一个样式问题:这是专门针对Python的,但我也常常想用其他语言。

我有一个对象,我正在整个地方返回:它是一个包含许多键的字典。我模块的主要目的是一个函数返回这个字典;该模块的其余部分只是实现此功能。在该main函数的docstring中,我有助于准确记录键的含义:

"""
Returns:
    None if the ROP should not be replaced, or a list of dictionaries
    corresponding to commands that should be run sequentially. Each
    dictionary contains the following keys:
        'command': a command that should be run in a shell
        'service': a string for the service that should be used, or None if any service can be used
        'cleanup_sequences': a list of hash-padded file sequences that should be cleaned up
        'cleanup_files': a list of files that should be cleaned up
        'log_sequences': a list of hash-padded file sequences that should be logged
        'log_files': a list of file that should be logged
        'start_frame': the first simulation frame / the first frame to be cleaned up
        'end_end': the last simulation frame / the last frame to be cleaned up
"""

不幸的是,对于我来说,这个对象在被模块中的main函数返回之前会经过其他三个函数。因此,我将这三个其他函数中每一个的每个文档字符串中的键包含在内。

这本身并不可怕:但它有很多重复的行,如果我更改了这本字典中的键,它也是一堆维护。

你们之前有没遇到过这个?由于键总是相同的,我想知道是否应该将它包装在我自己的类“MyDictionaryClass”中,并使用自己的docstring,然后在函数的文档字符串中我可以说“返回:MyDictionaryClass的一个实例”。但是,我不确定我应该使用什么样的对象---在C ++中我可能会为某种命名的地图输入dede。

感谢Python大师的任何建议!

1 个答案:

答案 0 :(得分:0)

不是大师,但我有同样的问题。我的确做了自己的字典:

class MyDictionary( dict ) :
    def __init__(self, *arg, **kwargs ):
        # do some stuff for instance check mandatory keys are present
        super(self.__class__, self).__init__( *arg, **kwargs )

然后我会记录我的函数返回MyDictionary

的字符串注释