模块无法识别索引变量[重复]

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))

【讨论】:

以上是关于模块无法识别索引变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA 公共变量无法识别

无法识别“nmake”一词[重复]

pygame.mixer.music.play() 无法识别 Fast Tracker(.xm 音乐格式)重复位置

创建天蓝色搜索索引时无法识别 IsSearchable

Golang 无法识别模块

工作室无法识别 R.layout [重复]