測定値からの複数のベクトルを持つクラスがあります。これらのベクトルを反復処理する必要がありますが、選択した測定値のみを使用したいと考えています。これまでに構築したものの簡略化されたバージョンは以下のとおりです。
import pylab as pl
class IterationReturn(object):
def __init__(self):
self.a = (1,2,3,4,5,6,7,8,9)
self.b = (10,20,30,40,50,60,70,80,90)
self.c = (-1,-2,-3,-4,-5,-6,-7,-8,-9)
self.i = 0
def returnNextSet(self):
self.aIter = self.a[self.i]
self.bIter = self.b[self.i]
self.cIter = self.c[self.i]
self.i +=1
return (self.aIter, self.bIter, self.cIter)
if __name__ == '__main__':
iteration = IterationReturn()
for i in range(len(iteration.a)):
# x takes aIter value from iteration.returnNextSet()
# y takes bIter value from iteration.returnNextSet()
x,y = iteration.returnNextSet()
pl.scatter(x, y)
pl.show()
この例ではどちらが機能するかは使用したくありませんx,y,z = iteration.returnNextSet()
が、実際にはもっと多くの値があり、それらすべてを割り当てたくありません。aIter
とだけに割り当てる方法が見つかりませんbIter
。
エラーがあります:
x,y = iteration.returnNextSet()
ValueError: too many values to unpack
私の問題では、多くの測定値 (a、b、...、z) があり、たとえば、x=d と y=k を割り当てたいと考えています。新しいクラスを設計するなど、最初から別の方法で行う必要があると思います。継承ですが、その方法がわかりません。助けていただければ幸いです