在Python中,如何在不更改名称空间的情况下将一个文件包含(而不是导入)到另一个文件宏样式中?

2024-05-23 19:10:30 发布

您现在位置:Python中文网/ 问答频道 /正文

首先我知道“进口”。当我尝试“导入”时,它不起作用。我要做的是将一个模块分成两个部分,一部分可以由一个组编辑,另一个不能编辑。我希望团队能够编写定义良好的“检索函数”,而不需要编辑运行它们的后端代码(即使是意外)。“import”上命名空间的更改阻碍了我的工作。我正在寻找一个宏样式的文件包含在文件的文本,运行内联,好像它是文件的一部分

这就是我要做的:

我有一些通用代码,设计成依次调用一系列信息检索函数,并以统一的方式存储信息。为此,我将其文本名称添加到列表中:

DataTypes = ['TypeA','TypeB','TypeC']

。。。然后定义一个函数,该函数知道如何获取每种类型,并返回填充的对象类:

^{pr2}$

这些函数将由只懂Python基本知识但通常有不良编程习惯的人编辑,但他们需要能够频繁地定制所收集和显示的内容。我已经有了一个后端来检查列表并调用函数,但是我只想将这些定义从其他后端代码中移到一个单独的文件中,但是工作时就好像它们就在里面一样。(也就是说,把“希望没人碰它”变成“人们必须千方百计去摸它”)

Python有这个吗?在

当我尝试使用Import时,检索函数与InfoObj的定义失去了联系。无论我使用“import otherFile”还是“from otherFile import*”,都会发生这种情况。在

编辑:这是我用来检索各种类型的标准方法:

THISMODULE = sys.modules[__name__]

for type in DataTypes:
    RetrievalFn = getattr( THISMODULE, 'Get_'+type )
    Data = RetrievalFn()
    StoreInDB(Data)

(尽管这可以归结为基础,但是有try/except子句、验证步骤来确保数据被正确填充并且不包含不正确的类型或不好的内容,以及在发生故障时通知团队的代码,但仍然会处理其余的项。目标是,进行编辑的人不会破坏其他检查,即使他们的编辑破坏了其中一个检查。)


Tags: 文件函数代码文本import编辑类型内容