该文档建议使用以下机制在 Python 中动态创建数据容器:
class Employee:
pass
john = Employee() # Create an empty employee record
# Fill the fields of the record
john.name = 'John Doe'
john.dept = 'computer lab'
john.salary = 1000
以上允许人们在一个标识符 ( john
) 中轻松地对一组不同的变量进行分组,而不必''
像使用字典那样键入引号 ( )。
我正在寻找一种解决方案,允许我将碎片(属性)“转储”回当前命名空间。为了解决这个问题,我想到了三个想法/问题:
1.给定上面的标识符john
,我如何以编程方式获取它的属性列表?
2.如何dump
john
在当前命名空间中轻松添加属性?(即通过浅拷贝或深拷贝创建名为name
,dept
的局部变量)salary
3.以下线程中的最佳答案描述了一种从创建的命名空间中转储变量的方法argparse
: Importing variables from a namespace object in Python
也许我可以使用一个Namespace
对象作为数据容器,就像上面的帖子一样,然后轻松地转储这些变量:
locals().update(vars(john))
?
为方便起见,我在下面列出了一个线程列表,讨论在 Python 中创建数据容器的其他方法,其中一些似乎不适合:
与 MATLAB 工作流程的连接:
作为参考,MATLAB 通过save
和提供了这个确切的功能load
,并且变量可以很容易地嵌套和取消嵌套,从而无需为此目的使用引号/字典)。这个问题背后的动机是确定在 Python 中支持这种“可选工作区”的机制。