我有一个list
自定义类对象(下面是示例)。
使用:list(itertools.chain.from_iterable(myBigList))
我想将所有stations
子列表“合并”到一个大列表中。因此,我认为我需要使自定义类成为可迭代的。
这是我的自定义类的示例。
class direction(object) :
def __init__(self, id) :
self.id = id
self.__stations = list()
def __iter__(self):
self.__i = 0 # iterable current item
return iter(self.__stations)
def __next__(self):
if self.__i<len(self.__stations)-1:
self.__i += 1
return self.__stations[self.__i]
else:
raise StopIteration
我实现了__iter__
,__next__
但是似乎没有用。他们甚至没有被召集。
知道我做错了什么吗?
注意:使用Python 3.3
__iter__
当您尝试遍历类实例时调用的是什么:
>>> class Foo(object):
... def __iter__(self):
... return (x for x in range(4))
...
>>> list(Foo())
[0, 1, 2, 3]
__next__
是在返回的对象上调用的内容__iter__
(在python2.x上next
,不是__next__
,我一般都对它们都使用别名,以便代码可以与其中任何一个一起使用…):
class Bar(object):
def __init__(self):
self.idx = 0
self.data = range(4)
def __iter__(self):
return self
def __next__(self):
self.idx += 1
try:
return self.data[self.idx-1]
except IndexError:
self.idx = 0
raise StopIteration # Done iterating.
next = __next__ # python2.x compatibility.
问题内容: 我正在尝试使我的对象可包裹。但是,我有自定义对象,这些对象具有ArrayList我制作的其他自定义对象的属性。 最好的方法是什么? 问题答案: 您可以在此处,此处(在此处获取代码)和此处找到一些示例。 您可以为此创建一个POJO类,但是您需要添加一些额外的代码来实现它Parcelable。看一下实现。 创建此类后,您可以Intent像这样轻松地传递此类的对象,并在目标活动中恢复该对象。
我正在使用reverfit2、rxjava2和adapter-rxjava来实现我的http api调用。 如果我有很多api需要实现,并且每个单独的api实现都需要添加这两行: 我不想在每个api实现中添加它们。我想使用MyObservable作为api定义的结果类型。 我的想法如下所示: 我在https://github.com/square/reverfit/blob/master/reve
问题内容: 有像isiterable这样的方法吗?到目前为止我找到的唯一解决办法就是打电话 但是我不确定这有多愚蠢。 问题答案: 检查是否可以处理序列类型,但是对于Python 2中的字符串可能会失败。我也想知道正确的答案,在此之前,这是一种可能性(也适用于字符串): 所述内置的检查的方法或串的情况下的方法。 另一种通用的pythonic方法是假定一个可迭代的对象,如果它不适用于给定的对象,则将优
如果它走路像鸭子,说话像鸭子,样子像鸭子,叫声也像鸭子,那它就是一只鸭子。 对于 Nutz Ioc 来说,它面对的配置文件就是层层嵌套的 "名值对集合",或者说是 Map 集合。 事实上,它是先把整个配置文件解析成 Map 再做判断的。 如果一个 Map 仅包括如下的键,则被认为是一个注入对象: type 对象类型 singleton 是否单例 scope 生命周期范围 events 监听事件 a
通过一个简单的数组,我可以使用标准的循环来实现: 但是如何用实物来做呢?
问题内容: 如果我有一个包含字符串的可迭代对象,是否有一种简单的方法可以将其转换为流?我想做这样的事情: 问题答案: 这是我的流式迭代器,它是urllib3的实验分支,它支持通过可迭代的流式分块请求: 带有上下文的源代码:https : //github.com/shazow/urllib3/blob/filepost- stream/urllib3/filepost.py#L23 相关单元测试: