我想用獅身人面像證明我的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