定制类
__str__
- 在类内部定义
__str__
方法 - 但是直接显示调用的是
__repr__
,两者的区别是__str__
返回的是用户看得到的字符串, 而__repr__
返回程序看到的字符串,也就是说为调试服务的 - 解决方法是重新定义一个
__repr__
, 但是通常两者的代码是一样的,所以可以简单写为 class Student(object):
def __init__(self, name):
self.name = name
def __str__(self):
return 'Student object (name=%s)' % self.name
__repr__ = __str__
- 在类内部定义
__iter__
- 如果一个类想被用于for in 循环,类似于list tuple,就必须实现一个
__iter__
方法,该方法返回一个迭代对象,然后python的for循环就会不断的调用该迭代对象的__next__
方法拿到循环的下一个值, 知道遇StopIteration
错误时推出循环
__getitem__
- 如果类要想和list一样取出其中的元素,需要实现
__getitem__
方法 - *