1、__repr__函数
- 通常__repr__函数是应用于实例化类中
- print(实例化类),直接打印出对应函数返回值
- 没有自定义__str__函数时,str(实例化类) 可以调用__repr__
- repr(实例化类),调用__repr__
class A:
def __repr__(self):
return "输出repr"
B = A()
C = repr(B)
print(C)
C1 = str(B)
print(C1)
print(B)
2、__str__函数
- 同时定义__repr__和__str__,print(实例化类) 时,调用的是__str__方法
- __str__可以被str(实例化类)调用,不能被repr(实例化类)函数调用
class A:
def __repr__(self):
return "输出repr"
def __str__(self):
return "输出str"
B = A()
C1 = str(B)
print(C1)
print(B)
3、__iter__函数 和__next__函数
- __iter__和__next__一般用于共同实现一个迭代器
- __iter__的作用主要是先变成一个迭代器对象,调用下一个元素是调用__next__的函数,当是最后一个函数时,必须抛出StopIteration来结束迭代
- __iter__加yield 也可以生成一个迭代器来迭代
__iter__ 加 __next__
class A:
def __iter__(self):
self.a = 0
return self
def __next__(self):
self.a += 1
if self.a > 10:
raise StopIteration
return self.a
B = A