python 学习笔记(8)

# -*- coding: utf-8 -*-
class Student (object):
    def __init__(self,name):
        self.name = name
    def __str__(self):
        return 'Student object (name: %s)' % self.name
print(Student('Micral'))
s = Student('Bob')
print (s)
# 如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象,Python的for
循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。class Fib (object):
    def __init__(self):
        self.a, self.b = 0, 1

    def __iter__ (self):
        return self # 返回对象本身
    def next (self):
        self.a,self.b = self.b,self.a + self.b
        if self.a >1000 :
            raise StopIteration()
        return self.a
for n in Fib():
    print (n)
# NOTE 在3.0 版本 next 变为 __next__
# 使 Fib 变的像list 可以获得Fib[x],需要定制函数__getItem()__

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值