当前位置: 首页 > 面试题库 >

如何将变量放入Python文档字符串

臧增
2023-03-14
问题内容

因此,我试图创建一个“动态”文档字符串,如下所示:

ANIMAL_TYPES = ["mammals", "reptiles", "other"]

def func(animalType):
""" This is a sample function.

    @param animalType: "It takes one of these animal types %s" % ANIMAL_TYPES
"""

基本上让文档字符串@param animalType显示所有ANIMAL_TYPES内容;因此,当更新此变量时,文档字符串将自动更新。

不幸的是,它似乎不起作用。有谁知道有没有办法实现这一目标?


问题答案:

三引号字符串是一个大字符串。它们内部没有任何评估。该%部分是字符串的所有部分。您需要使它在实际的字符串上运行。 ~~~~

def func(animalType):
    """
    This is a sample function.

    @param animalType: "It takes one of these animal types %(ANIMAL_TYPES)s"
    """ % {'ANIMAL_TYPES': ANIMAL_TYPES}

我不确定这是否可以正常工作;docstrings有点神奇。这将 工作;
docstring在编译时进行评估(作为函数中的第一条语句,假定它是字符串文字,一旦包含%了它,而不仅仅是字符串文字),字符串格式在运行时发生,因此__doc__为空:

>>> def a(): 'docstring works'
... 
>>> a.__doc__
'docstring works'
>>> def b(): "formatted docstring doesn't work %s" % ':-('
... 
>>> b.__doc__
>>>

如果要以这种方式工作,则需要func.__doc__ %= {'ANIMAL_TYPES': ANIMAL_TYPES}在定义函数之后执行。请注意,python -OO如果您不检查__doc__已定义的内容(如-OO剥离文档字符串),这将中断。

>>> def c(): "formatted docstring works %s"
... 
>>> c.__doc__
"formatted docstring works %s"
>>> c.__doc__ %= 'after'
>>> c.__doc__
"formatted docstring works after"

无论如何,这不是标准技术。标准技术是引用适当的常量:“采用ANIMAL_TYPES中的一种动物类型”或类似的常量。



 类似资料:
  • 问题内容: 我想int放入一个。这是我目前正在做的事情: 我必须为几个不同的数字运行程序,所以我想做一个循环。但是像这样插入变量不起作用: 如何在字符串中插入变量? 问题答案: 当跟随字符串时,%运算符允许你通过格式代码(在本例中为%d)将值插入该字符串。有关详细信息,请参阅Python文档:

  • 问题内容: 是否可以将变量放入字符串资源中?如果是的话-我该如何使用它们。 我需要的是以下内容: 并用int代替%X。 问题答案: 从这里取的例子

  • 问题内容: 我有很多小文件,我不想逐行阅读它们。 Go中是否有将整个文件读入字符串变量的函数? 问题答案: 用途: ReadFile读取以文件名命名的文件并返回内容。成功调用将返回err == nil,而不是err == EOF。由于ReadFile读取整个文件,因此不会将Read中的EOF视为要报告的错误。 您会得到一个而不是。如果 确实 需要,可以将其转换为:

  • 问题内容: 我使用以下代码段在python中读取文件: 输入文件为: 当我打印数据时 如我所见,数据是list形式化的。如何将其制成字符串?而且我怎么删除以及从中字符? 问题答案: 你可以使用:

  • 问题内容: 这就是您在python中执行的方式。您如何在javascript / node.js中做到这一点? 问题答案: 如果您想要类似的东西,可以创建一个函数: 用法: 这只是一个简单的示例,并未考虑到不同类型的数据类型(如等)或转义。但我希望它能给您一些想法。我很确定那里也有提供这样功能的库。