我想从文件中提取对象的名称,并用我已经保存的值重新加载它。我正在编写我自己的pickle类型函数,因为pickle并没有按我的意愿执行。
- 我将所有用户输入变量保存到一个文本文件中
- 我重新打开我的项目(和文本文件(,所有的用户输入值仍然可用。其中一些变量是我创建的类的对象
为了保存步骤1中的值,我取出了对象的类名和与之相关的所有变量。
那么,知道类名后,我该如何声明一个新对象并加载所有保存的变量呢?换句话说,如何将字符串转换为类名来启动新对象?
cn = myclassname
至
newobj = cn()
以下是您可以做的:
-
您的类应该能够导出要存储在字典中的参数。为此,请使用inspect模块和mixin类。
-
以yaml/json格式存储dicts;dict处理得非常好。键是类名。同一类的多个对象出现在列表中。
-
创建一个仅用于重新创建对象的类。这应该有一个查找表(一个字典(,其中类的名称为dict,类为value。迭代从文件中读取的dict并创建对象。