外部ソースからデータを抽出する必要があります。いくつかの構造を持つベースクラスを作成します。myBaseクラスのタイプであるが、ソースを反復処理する回数を自動的に説明する名前のオブジェクトが必要です。この番号を格納するクラスを作成し、必要なオブジェクトを返す呼び出しメソッドを使用します。オブジェクトの名前として文字列を使用する方法が見つかりませんが、新しいオブジェクトを作成するたびに自動的に異なります。この例のコードを簡略化しました。
class myBase:
def __init__(self):
iteratedValue = None
class myIterator:
def __init__(self):
self.k = 0
def __call__(self, s):
self.k += 1
self.name = 'myData' + str(self.k)
# create an object named myData1, myData2 ...
self.name = myBase()
self.name.iteratedValue = s
print '%s name is %s for k = %i' % (self.name, self.name.iteratedValue, self.k)
# return object named myData1 type of myBase
return self.name
def DataExtraction():
# function to extract data form external source
data = myIterator()
data('Alice')
data('Ben')
DataExtraction()
私の出力は次のとおりです。
<__main__.myBase instance at 0x7f261b6dc6c8> name is Alice for k = 1
<__main__.myBase instance at 0x7f261b6dc6c8> name is Ben for k = 2
特定の名前のオブジェクトを返す必要があり、次の出力が期待されます。
myData1 name is Alice for k = 1
myData2 name is Ben for k = 2
元の問題ははるかに複雑です。私は外部データを持っており、それらが来るたびに、このデータからいくつかの値を抽出したいと思います。これを行うたびに、それを操作するためのオブジェクトが必要ですが、最終的には別のメソッドのdictに格納するため、異なる名前のこのオブジェクトが必要です。つまりmyData1
、元のデータが変更されたときにデータを操作して結果をオブジェクトに保存します。データを再度操作して結果を保存しますmyData2
。結局のところ、すべてのmyData
オブジェクトが必要であり、それらの統計を実行して変更方法を確認します。元のデータにアクセスできなくなりました。の自動命名規則が必要でmyData
あり、イテレータを表現する場合に最適です。
self.name
オブジェクトの名前の代わりに文字列を使用するにはどうすればよいですか?