当前位置: 首页 > 知识库问答 >
问题:

在python中,如果模块名是一个变量,是否可以列出模块内的函数?

夔高寒
2023-03-14

我正在做一个小的应用程序,可以列出所有的功能和帮助文档从给定的模块名和函数名。只需练习我的tkinter技能。

在我创建和entrybox之后,从user获取作为模块名的输入,并通过以下代码导入:

module_name = module_entry.get()
__import__(module_name)

然后,我尝试使用function_list=dir(module_name)列出所有函数名。但是我发现dir()函数必须在导入后直接应用到模块名,例如:dir(pandas)dir(matplotlib)。当模块名是一个变量时,是否有任何工作方法来列出所有的函数?

共有1个答案

锺离高丽
2023-03-14

__import__从模块的名称返回模块,所以只需执行

module_name = module_entry.get()
module = __import__(module_name)
dir(module)
 类似资料:
  • 问题内容: 我以这种格式定义了一个.py文件: foo.py 我从另一个文件导入它: main.py 是否可以列出所有功能名称,例如? 感谢您的帮助,我为我想要的课程做了一堂课,如果有建议请发表评论 问题答案: 做这些事情的最干净的方法是使用检查模块。它具有将谓词作为第二个参数的函数。您可以用作谓词。 现在,将是一个元组列表,其中第一个元素是函数的名称,第二个元素是函数本身。

  • 问题内容: 我有一个需要一些模块。有没有办法可以注入模块本身?我意识到这有点麻烦。 例: 我想在这种情况下,解决方案是将方法转换为完整的类。这显然是一个简化的示例;我正在处理的代码有很多这样的方法,因此将它们分成单独的类并引入配置它们的模块会增加相当多的混乱- 我认为Guice就是要减少样板混乱? 也许这反映了我对Guice的相对呆板,但是我遇到了很多尝试着做上述事情的案例。我肯定错过了什么… 问

  • 是否有一种明智的方法让一个perl6模块检查另一个perl6模块的存在,并在安装时“使用”它? 像这样的。。。 其思想是传播操作符重载(中缀: (请不要拆掉排水管,因为我怀疑总有办法!)

  • 问题内容: 我正在编写一个小脚本,该脚本从目录获取文件名,并将其传递给另一个模块,然后该模块导入文件。 因此流程类似于1)获取模块名称(将其存储在变量中)2)将此变量名称传递给模块3)导入名称存储在变量名称中的模块 我的代码就像 问题在于,当它到达import语句时,它将modulename读取为真实的模块名称,而不是存储在此变量中的值。我不确定这在python中如何工作,解决这个问题的任何帮助都

  • 问题内容: 我使用OSGI,这是我要禁用模块的主要原因,因为我真的不需要其他模块框架。是否可以这样做,例如使用命令行选项?如果是,那怎么办? 问题答案: 没有关闭模块系统的选项-它将始终处于活动状态。这会影响对JDK内部API的访问,对Java EE模块的依赖,Split软件包以及许多其他小细节 。如果您希望应用程序在Java 9上运行,则代码和依赖项必须应对这些迁移挑战。 但是,您绝不被迫创建模

  • 问题内容: 假设我有一个名为的软件包,其中包含: 和: 然后我执行以下脚本: 这是我的期望: 这是我得到的: 谁能解释我的误解? 问题答案: 您正在使用。在导入模块的全局范围(或​​发生import语句的任何范围)中成为符号。 当您为指定新值时,您也只是在更改哪些值点,而不是实际值。尝试直接使用in导入,并通过设置在那里进行实验。这样,您实际上将在此上下文中修改哪个是“实际”值。 它有点令人费解,