在python中动态创建对象,也就是将字符串转换为类名调用



我想从文件中提取对象的名称,并用我已经保存的值重新加载它。我正在编写我自己的pickle类型函数,因为pickle并没有按我的意愿执行。

  1. 我将所有用户输入变量保存到一个文本文件中
  2. 我重新打开我的项目(和文本文件(,所有的用户输入值仍然可用。其中一些变量是我创建的类的对象

为了保存步骤1中的值,我取出了对象的类名和与之相关的所有变量。

那么,知道类名后,我该如何声明一个新对象并加载所有保存的变量呢?换句话说,如何将字符串转换为类名来启动新对象?

cn = myclassname

newobj = cn() 

以下是您可以做的:

  • 您的类应该能够导出要存储在字典中的参数。为此,请使用inspect模块和mixin类。

  • 以yaml/json格式存储dicts;dict处理得非常好。键是类名。同一类的多个对象出现在列表中。

  • 创建一个仅用于重新创建对象的类。这应该有一个查找表(一个字典(,其中类的名称为dict,类为value。迭代从文件中读取的dict并创建对象。

最新更新