当前位置: 首页 > 面试题库 >

Python-从字符串变量导入模块

柳羽
2023-03-14
问题内容

我正在编写有关matplotlib(MPL)嵌套库的文档(个人),该文档与感兴趣的子模块程序包所提供的MPL有所不同。我正在编写Python脚本,希望该脚本可以自动从将来的MPL版本中生成文档。
我选择了感兴趣的子模块/程序包,并希望列出其主要类,然后从中生成列表并进行处理。pydoc

问题是我找不到指示Python从字符串加载子模块的方法。这是我尝试过的示例:

import matplotlib.text as text
x = dir(text)
。

i = __import__('matplotlib.text')
y = dir(i)
。

j = __import__('matplotlib')
z = dir(j)

这是通过pprint比较上述列表的三种方式:

我不明白y对象中加载了什么-它是基础对象matplotlib以及其他内容,但是它缺少我想要的信息,而这正是matplotlib.text包中的主要类。这是屏幕截图中最上面的蓝色部分(x列表)

请不要建议Sphinx作为其他方法。


问题答案:

__import__功能可能有点难以理解。

如果你改变

i = __import__('matplotlib.text')

i = __import__('matplotlib.text', fromlist=[''])

然后i将参考matplotlib.text

在Python 2.7和Python 3.1或更高版本中,可以使用importlib

import importlib

i = importlib.import_module("matplotlib.text")

一些注意事项

如果你尝试从子文件夹(例如)中导入内容./feature/email.py,则代码将如下所示importlib.import_module("feature.email")

如果__init__.py你要导入的文件所在的文件夹中没有任何内容,则无法导入任何内容



 类似资料:
  • 我只是尝试在HTML中插入从表单中提取的两个值。使用Flask和mysql.connector 这是我的index.html: 和我在python(app.py)中的行: 无论出于什么原因,我在执行第一个游标时会出现内部服务器错误,但“#”游标代码可以正常工作...请问谁能告诉我,我哪里出了问题。

  • 在JSP页面中,我可以使用JSTL加载xml文件,从xml文件路径或url加载到JSTL变量,如下所示: 现在,如果我的xml文件在String变量而不是文件系统中,我如何做完全相同的事情? 说我有 如何将其导入jstl var“xmldocument”? 谢谢。

  • 问题内容: 有没有一种方法可以从字符串创建全局变量?我知道您可以像这样从字符串中创建变量: 因此,使hello变量等于10。我不知道如何使该用户输入变量成为全局变量,但这不起作用: 问题答案: 您可以使用以下功能:

  • 问题 你想创建一个内嵌变量的字符串,变量被它的值所表示的字符串替换掉。 解决方案 Python并没有对在字符串中简单替换变量值提供直接的支持。 但是通过使用字符串的 format() 方法来解决这个问题。比如: >>> s = '{name} has {n} messages.' >>> s.format(name='Guido', n=37) 'Guido has 37 messages.' >

  • 问题内容: 因此,我试图创建一个“动态”文档字符串,如下所示: 基本上让文档字符串显示所有内容;因此,当更新此变量时,文档字符串将自动更新。 不幸的是,它似乎不起作用。有谁知道有没有办法实现这一目标? 问题答案: 三引号字符串是一个大字符串。它们内部没有任何评估。该部分是字符串的所有部分。您需要使它在实际的字符串上运行。 ~~~~ 我不确定这是否可以正常工作;docstrings有点神奇。这将 不

  • 问题内容: 我试图创建一个唯一文件名的文件,每次运行脚本时,它只打算每周或每月执行一次。所以我选择使用日期作为文件名。 是我收到此错误的地方。 如果我使用静态文件名,它可以工作,打开功能是否存在问题,这意味着您不能传递这样的字符串? name是一个字符串,其值包括: 非常感谢您的帮助 问题答案: 您需要在字符串后面直接输入: 您的代码不起作用的原因是,您正在尝试的文件不是字符串格式,而且也是无效的