本文以廖雪峰的官方网站为参考来学习python的。其学习链接为廖雪峰小白学python教程。
本文是学习到python的定制类。参考链接廖雪峰python定制类。
本学习笔记仅供参考。
__str__
class Student(object):
def __init__(self,name):
self.name = name
def __str__(self):
return 'Student object (name: %s)' %self.name
print(Student('Michael'))
运行结果:
Student object (name: Michael)
__iter__
class Fib(object):
def __init__(self):
self.a,self.b = 0,1 #初始化两个计数器a,b
def __iter__(self):
return self #实例本身就是迭代对象,故返回自己
def __next__(self):
self.a, self.b = self.b, self.a + self.b #计算下一个值
if self.a >100000: #退出循环的条件
raise StopIteration()
return self.a
for n in Fib():
print(n)
运行结果:
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
笔记:
Python的for循环就会不断的调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration退出。