类定义中__init__方法能够自动调用,我查了教程,说这类方法叫做专用方法,还有比如__str__等等,教程给了一个专有方法的列表。
但是我遇到了一个新的这种函数__getitem__(self,key),它不在那个列表里面,也能使用,想问,长成这样的函数是怎么调用的?我看的好像是这类函数都可以自动调用的样子。。
class Session:
def __init__(self, handler):
self.handler = handler
self.random_index_str = None
def __getitem__(self, key):
self.random_index_str = self.handler.get_secure_cookie('__sson__', None)
if not self.random_index_str:
return None
else:
self.random_index_str = str(self.random_index_str, encoding="utf-8")
current_user = ALL_USER_DIC.get(self.random_index_str, None)
if not current_user:
return None
else:
return current_user.get(key, None)
__getitem__函数可以通过两种方式调用: