我想用狮身人面像证明我的Python代码,但我发现一个问题记录一些数据与exec
实例化;我有一个需要实例化的名称和值的表。狮身人面像 - 自动数据显示str .__ doc__
所以在我的代码,我写的是这样的:
my_vars = [{'name': 'var1', 'value': 'first'},
{'name': 'var2', 'value': 'second'}]
for var in my_vars:
exec("{var[name]} = '{var[value]}'".format(var=var))
问题是与狮身人面像:因为我想保持我只是用autodata
的源代码,从我.rst
文件corrisponding线路有:
.. autodata:: mymodule.var1
.. autodata:: mymodule.var2
所建立起来的时候给了我这个:
mymodule.var1 = 'first'
str(string[, encoding[, errors]]) -> str
Create a new string object from the given encoded string.
encoding defaults to the current default string encoding.
errors can be ‘strict’, ‘replace’ or ‘ignore’ and defaults to ‘strict’.
mymodule.var2 = 'second'
str(string[, encoding[, errors]]) -> str
Create a new string object from the given encoded string.
encoding defaults to the current default string encoding.
errors can be ‘strict’, ‘replace’ or ‘ignore’ and defaults to ‘strict’.
我认为自动数据会查看var1.__doc__
作为文档字符串,并且发现str.__doc__
(即前面显示的消息)。
我真的不知道该怎么做,我正在寻找一种不显示丑陋的doc字符串(但仍然保持mymodule.var1 = 'first'
)的方法。
或者甚至更好的方式来显示我自己的文档,如:var1 is this.
(但我不知道该把它放在哪里)。
这看起来不错,但是您认为那里可能是一种将doc字符串放入my_vars的方法, 可能类似于:'{'name':'var1','value':'first','doc':'var1 doc'}' 然后提取该文档串? – 2012-01-07 14:09:43
我在设置变量的'__doc__'属性时尝试了一些尝试,但是我无法使它工作。我收到关于'__doc__'的错误消息,因为它是只读的(因为字符串是不可变的,我猜)。 – mzjn 2012-01-07 14:27:44
您认为将str继承到exec来覆盖'__doc__'可能是一个好主意吗?我只是试过了,它适用于文档,但是我的'var'不再是'str'(因为它们将会是内部包中的常量,我不知道它是否是一个好主意),你是什么认为? – 2012-01-07 14:53:46