class Student():
#实例化的时候调用的方法,类似于构造函数
def __init__(self):
self.a,self.b=0,1
print('Student被实例化了')
#类似与Java的toString方法
def __str__(self):
return '我是一个Student的实例'
#调试的时候显示的字符串
__repr__=__str__
#该方法返回一个迭代对象
def __iter__(self):
return self
#实现该方法可用next循环(斐波那契数列)
def __next__(self):
self.a,self.b=self.b,self.a+self.b
if self.a>1000:#退出循环并且抛出异常
raise StopIteration
return self.a
#实现该方法可以通过下标取出
def __getitem__(self, index):
a,b=0,1
for x in range(index):
a,b=b,a+b
return a
s=Student()
print('打印:%s'%s)
print(s[2])
print(s[3])
print(s[4])
print('***************')
for x in s:
print(x)
C:\Users\Administrator.000\AppData\Local\Programs\Python\Python36\python.exe E:/python/17.定制类.py
Student被实例化了
打印:我是一个Student的实例
1
2
3
***************
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
Process finished with exit code 0