如何在 Python 3.6.1 中动态打印文档字符串?
How to dynamically print a docstring in Python 3.6.1?
在阅读一些 Python 培训书籍时,我对 object 进行了一些修改,例如打印常见 object 和属性的文档字符串。
考虑返回的字符串列表:
dir(str)
我正在尝试迭代上述内容,以便使用以下循环动态打印存储在目录列表中的属性的文档字符串:
for item in dir(str):
print(item.__doc__)
这 returns str object 的目录输出而不是它的属性,这不是我要找的。我如何才能动态打印填充 dir 方法生成的列表的所有属性的文档字符串?
编辑:这不是另一个 question 的副本。
使用 "enumerate" 这个词非常具有误导性,至少对我来说是这样,所以我会说这个问题的标题不正确,事实上我花了很多时间寻找解决方案,但没有搜索查询返回那个。
您可以使用 getattr(obj, attr)
从对象中获取命名属性。
for item in dir(str):
print(getattr(str, item).__doc__)
不要使用只为您提供属性名称的 dir
,而是使用 vars
- 这会为您提供实际方法对象的名称字典。
for name, method in vars(str).items():
print(name, method.__doc__)
在阅读一些 Python 培训书籍时,我对 object 进行了一些修改,例如打印常见 object 和属性的文档字符串。
考虑返回的字符串列表:
dir(str)
我正在尝试迭代上述内容,以便使用以下循环动态打印存储在目录列表中的属性的文档字符串:
for item in dir(str):
print(item.__doc__)
这 returns str object 的目录输出而不是它的属性,这不是我要找的。我如何才能动态打印填充 dir 方法生成的列表的所有属性的文档字符串?
编辑:这不是另一个 question 的副本。 使用 "enumerate" 这个词非常具有误导性,至少对我来说是这样,所以我会说这个问题的标题不正确,事实上我花了很多时间寻找解决方案,但没有搜索查询返回那个。
您可以使用 getattr(obj, attr)
从对象中获取命名属性。
for item in dir(str):
print(getattr(str, item).__doc__)
不要使用只为您提供属性名称的 dir
,而是使用 vars
- 这会为您提供实际方法对象的名称字典。
for name, method in vars(str).items():
print(name, method.__doc__)