在 Python 中按全名创建实例

create instance by full name in Python

改写:

我想用 class 个名称创建 class 个实例。这些名称按顺序保存在 json 配置文件中。它们在 python 文件中定义。一些 class 具有相同的名称但在不同的文件夹中。

使用一个简单的例子如下: 文件夹为:

folderA/User.py #define class User

folderB/User.py #define class User 

在mymain.py中,我从配置文件中按顺序读取名称,比如"folderA.User","folderB.User",它们是字符串。

我想在 运行 时将这些字符串转换为相应的实例。请注意,配置文件可能会更改。这就是为什么我需要动态创建。

好的,我不会用globals(),我该怎么办?

你每次都试过这个代码吗yourfile.py

import sys
sys.path.insert(1, '/path/to/application/app/folder')
import file

实际上是 globals() 函数。是一本字典 其语法如下:

globals() -> dictionary

例如

>>>globals()['z'] = 23

>>>z
23

sys.path.insert(1, '/path/to/application/app/folder')
import file1
import file2

sys.path.insert(2, '/path/to/application/app/folder2')
import file3
import file4