一、基础知识
二、索引和分片:__getitem__ 和 __setitem__
三、索引迭代:__getitem__
四、可迭代对象:__iter__ 和 __next__
五、成员关系:__constains__ 、__iter__ 和 __getitem__
六、属性访问:__getattr__ 和 __setattr__
七、字符串显示:__repr__ 和 __str__
八、右侧加法和原位置加法:__radd__和__iadd__
九、调用表达式:__call__
这个方法的功能类似于在类中重载了()
运算符,使得使用类实例对象可以像调用普通函数那样,以对象名()
的形式来进行使用:
class callee:
def __call__(self,*pargs,**kargs):
print('called:',pargs,kargs)
c=callee()
print(c(1,2,3))
# called: (1, 2, 3) {}
print(c(1,2,3,x=4,y=5))
# called: (1, 2, 3) {'x': 4, 'y': 5}
下面是__call__
方法定义的例子: