ドキュメントでは、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 つの識別子 ( ) 内でさまざまな変数のセットを簡単にグループ化できます。''
断片 (属性) を現在の名前空間に「ダンプ」できるソリューションを探しています。これに対処するために頭に浮かぶ3つのアイデア/問題があります。
1.上記の識別子が与えられた場合、そのjohn
属性のリストをプログラムで取得するにはどうすればよいですか?
2.dump
john
現在の名前空間で の属性を簡単に取得するにはどうすればよいですか? (つまり、浅いコピーまたは深いコピーのいずれかを介してname
、dept
、というローカル変数を作成します)salary
3.次のスレッドの一番上の回答は、Python で作成された名前空間から変数をダンプする方法を説明していますargparse
: Importing variables from a namespace object in Python
おそらくNamespace
、上記の投稿のように、オブジェクトをデータ コンテナーとして使用し、それらの変数を次のように簡単にダンプできます。
locals().update(vars(john))
?
便宜上、Python でデータ コンテナを作成するための他のアプローチについて議論しているスレッドのリストを以下に示します。そのうちのいくつかは選択できないようです。
MATLAB ワークフローとの接続:
save
参考までに、MATLAB はとを介してこの正確な機能を提供しload
、変数は簡単にネストおよびネスト解除できるため、この目的で引用符/辞書を使用する必要がなくなります)。この質問の背後にある動機は、Python でそのような「選択可能なワークスペース」をサポートするメカニズムを特定することです。