模块无法识别索引变量[重复]
Posted
技术标签:
【中文标题】模块无法识别索引变量[重复]【英文标题】:module not recognizing index variable [duplicate] 【发布时间】:2018-08-22 11:42:44 【问题描述】:我想返回给定模块(例如 os)中每个函数的帮助文本。下面的代码(代码块 A)返回以下错误:
AttributeError: 模块 'os' 没有属性 'i'
#Code block A
import os
for i in dir(os):
print (help(os.i))
如果我改为运行下面的代码(代码块 B),则在 for 循环中的每一步都会返回第 i 个位置的函数名。
#Code block B
for i in dir(os):
print (i)
第一季度。为什么索引变量 i 在 Code Block A "help(os.i)" 中被识别为 "i" 而在 Code Block B "print(i) 中却不是?
第二季度。对于给定的模块,有没有办法将可迭代项中的每个项目作为函数(类似于代码块 A)调用?
提前感谢您提供任何见解或建议。
【问题讨论】:
我不同意最初发布的问题是重复的。虽然这可能是由于我没有以这种方式直接处理类和编程的经验。 jk622提供的答案很有帮助。 欢迎来到社区。如果一个答案帮助你解决了你的问题,你应该接受它。见How does accepting an answer work. 【参考方案1】:在 python 中有少数情况下,i
变量本来代表一个可迭代的,而是被视为字符串文字“i”。在这些情况下,最好通过将可迭代(由i
表示)强制转换为字符串添加到您尝试添加的任何其他内容来构建字符串。然后,您只需根据需要将整个字符串输入函数。
在您的特定情况下:
for i in dir(os):
s = "os." + str(i)
print(help(s))
【讨论】:
以上是关于模块无法识别索引变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章