2016-05-25 13 views
0

autoにどのような方法は、私は自動的にクラスのオブジェクトを作成したいのpythonクラスのオブジェクトを自動的に作成する方法は?

class A: 
    pass 
a = A() 

でオブジェクトを作成あります。 私はXMLの束を解析する必要があり、私は1つのファイル(エントリの解析)のためのオブジェクトを作成したいと思います。 またはランダムな名前を作成する必要がありますか?

+1

は、http://stackoverflow.com/questions/3451779/how-to-dynamically-create-an-instance-of-a-class-in-pythonの複製のようです。 –

+0

あなたの説明からわかりませんあなたは困っている。クラス 'A'のインスタンス' a'を自動的に作成するコードをすでに作成しています。このクラスの多くのインスタンスが必要な場合は、それらをリストに格納できます(例: 'files = ['file1.xml'、 'file2.xml'];パーサー= [ファイル内のfのA(f)] '。しかし、あなたの問題に応じて他のオプションも可能です... –

答えて

1

オブジェクトインスタンスに変数名を手動で割り当てる必要はありません。オブジェクトのリストがファイルの情報で作成されるこの例のように、動的に作成するときに単にリストに格納するだけです。

class A: 
    def __init__(self, words): 
     self.words = words 

a_objects = [] 
file = open("testfile.txt") 
for line in file: 
    words = line.split() 
    a_objects.append(A(words)) 

あなたが直接キーを使用してオブジェクトにアクセスする必要がある場合は、リストの代わりに辞書を使用する必要があります:

a_objects = {} 

あなたはこのようにそれにキーと値のペアを追加することができます。

words = line.split() 
key = words[0] 
a_objects[key] = A(words) 
+0

'a_objects.append(A(words)'に ')'がありません – abukaj

+0

@abukajおっと、もちろんそうです。私はそれを修正しました –

+0

おかげさまで多くのことをありがとう!私は少しオブジェクトにオブジェクトを作成するだけでなく、いくつかの変数( –

関連する問題