我有以下课程。它有两个实例变量表示为数组。它们不一定具有相同的长度:
class A(object):
def __init__(self, input):
self.input = []
for data in input:
self.input.append(data)
self.other_information = []
self.input
和self.other_information
都将包含其他类的对象。在我的__str__
方法中,我将需要迭代它们。定义一个__iter__
方法来处理具有单个数组的实例变量的对象是没有问题的。如果两个数组具有相同的长度,这不是问题,但是我可以使用单个__iter__
方法迭代我的__str__
方法中具有不同长度的两个实例变量吗?我在这里看过非OOP帖子,但是这样的话呢?
答案 0 :(得分:1)
您可以使用itertools.chain()按顺序迭代两个数组
'\ufeffThe Project Gutenberg E8'
您也可以使用“收益率”。结果将是相同的。
import itertools
class A(object):
def __init__(self, input):
self.input = []
for data in input:
self.input.append(data)
self.other_information = list(range(5))
def __iter__(self):
return itertools.chain(self.input, self.other_information)
a = A(['a', 'b', 'c'])
for i in a:
print(i)
# a
# b
# c
# 0
# 1
# 2
# 3
# 4