python----iter\next

1、说明:__getitem__\setitem可以迭代,它已经不被推荐了;建议使用__iter__\next。

2、python会先去检查__iter__\next然后再去检查__getitem__\__setitem__,也就是说__iter__优先。

例子:

#!coding:utf-8
#!python version 2.7

class mysqence(object):
    def __init__(self,start,stop):
        self.start=start
        self.stop=stop
        self.current=start
    def __iter__(self):
        return self
    def next(self):
        ‘‘‘如果是python3.0环境,它已经不在用next了,而是把名字改成__next__‘‘‘
        current=self.current
        if current <= self.stop:
            self.current=self.current+1
            return current
        else:
            raise StopIteration

for x in mysqence(1,5):
    print x
时间: 2024-10-20 06:36:17

python----iter\next的相关文章

Python iter() 函数

Python iter() 函数  Python 内置函数 描述 iter() 函数用来生成迭代器. 语法 以下是 iter() 方法的语法: iter(object[, sentinel]) 参数 object -- 支持迭代的集合对象. sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object. 打开模式 返回值 迭代器对象. 实例

Python iter方法使用说明

Python 3中关于iter(object[, sentinel)]方法有两个参数. 使用iter(object)这种形式比较常见. iter(object, sentinel)这种形式使用的比较少,Python的文档说明貌似也不容易理解. 故,在此举例说明一下此函数的用法. 1,iter(object) Python官方文档对于这种形式的解释很容易理解. 此时,object必须是集合对象,且支持迭代协议(iteration protocol)或者支持序列协议(sequence protoco

python iter yield

>>> lst = range(2)>>> it = iter(lst)>>> it<listiterator object at 0x00BB62F0> 使用迭代器的next()方法可以访问下一个元素:12    >>> it.next()0 如果是Python 2.6+,还有内建函数next(iterator)可以完成这一功能:12 >>> next(it)1 不像一般的函数会生成值后退出,生成器函数

python iter,迭代器&amp;dict,字典详解

可以直接作用于for循环的对象统称为可迭代对象(Iterable). 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator). 所有的Iterable均可以通过内置函数iter()来转变为Iterator. 迭代器为类序列对象提供了一个类序列的接口.python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象.迭代器用起来很灵巧,你可以迭代不是序列但表现处序列行为的对象,例如字典的键.一个文件的行,等等.迭代器的作用如下: >>>

Python基础教程学习:深入 Python iter() 方法

今天我们来介绍下Python基础教程学习之iter() 方法另外的用法.据说很少有人知道这个用法! 一.上代码.学用法 我们都比较熟悉 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错.但其实如果仔细看官方文档,会发现 iter() 方法其实是接受两个参数的,文档说明如下 iter(object[, sentinel]) sentinel 英文翻译为 哨兵. sentinel 参数是可选的,当它存在时,object 不再传入一个可迭代对象,而是一个可调用对象,通俗点说

python学习笔记-Day8 下 (特殊方法、iter方法、super方法、有序字典实现、python单例模式)

使用特殊方法实现字典 # 使用像字典 dic['xx'] 带中括号的类使用 # 简要介绍 class Foo: # ① 对象[xx] 调用的方法 def __getitem__(self, item): return 'getitem' # ② 对象[xx] = xxx 调用的方法 def __setitem__(self, key, value): return 'setitem' # ③ del 对象[xx] 调用的方法 def __delitem__(self, key): return

python迭代器:iter()和__iter__()

概述 迭代器更大的功劳是提供了一个统一的访问集合的接口.迭代器为类序列对象提供了一个类序列的接口.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退.python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象.迭代器用起来很灵巧,你可以迭代不是序列但表现出序列行为的对象,例如字典的键.一个文件的行,等等. 从根本上说,迭代器就是有一个next()方法的对象,而不是通过索引来计数. 迭代器的作用如下: 提供了可扩展的迭代器接口:

Python全栈之路8--迭代器(iter)和生成器(yield)

一.生成器( iter ) 从Python2.2起,生成器提供了一种简洁的方式帮助返回列表元素的函数来完成简单和有效的代码. 它基于yield指令,允许停止函数并立即返回结果.此函数保存其执行上下文,如果需要,可立即继续执行. 1.对比 range 和 xrange 的区别 >>> print range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print xrange(10) xrange(10) 如上代码所示,range会在内存

python之函数用法iter()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法iter() #iter() #说明:对一个对象调用 iter() 就可以得到它的迭代器 ''' iter(...) iter(collection) -> iterator collection:容器 iterator:可迭代对象 iter(callable, sentinel) -> iterator ''' #案例 obj=range(10) iterObj=iter(obj

python中的next()以及iter()函数

我们首先要知道什么是可迭代的对象(可以用for循环的对象)Iterable: 一类:list,tuple,dict,set,str 二类:generator,包含生成器和带yield的generatoe function 而生成器不但可以作用于for,还可以被next()函数不断调用并返回下一个值,可以被next()函数不断返回下一个值的对象称为迭代器:Iterator 生成器都是Iterator对象,但list,dict,str是Iterable,但不是Iterator,要把list,dict