前言
你自己创建的对象可以像str、list、tuple那样,通过下标访问某个元素,或者像dict那样,传入某个key访问某个元素!今天介绍的特殊方法__getitem__,可以帮你做到!!
回顾特殊方法
特殊方法,也称魔法方法,两个基本特点
1、方法名称以__开头、__结尾
比如__init__是个特殊方法
2、每个特殊方法会在某个场景下被自动调用
比如"hello"[0]时,str的__getitem__方法会被调用,你会得到一个"h"
重写__getitem__方法
举例:
"""
求数列1, 3, 5, 7, ········的第n项
"""
class ProblemA(object):
def __getitem__(self, n):
return n * 2 - 1
def solution(sample):
solu = ProblemA()
return solu[sample] #这里会导致__getitem__被调用
answer = solution(100)
print(answer)