我需要从外部源中提取数据。我建立了一个具有某种结构的基类。我需要具有 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
对象的名称?