最近使用time.localtime的時候發現結果可以使用下標和屬性方式訪問.好奇之下查看了一下他的原理, 其實就是__getitem__魔法函數~
>>> import time>>> tm = time.localtime()>>> tm.tm_year2017>>> tm[0]2017#幫助信息>>> help(tm)Help on struct_time object:--------------------------------------------------------- | Methods inherited from builtins.tuple: | __getitem__(self, key, /) | Return self[key].其中tm可以使用類似屬性和下標的形式訪問
>>> type(tm)<class 'time.struct_time'>自定義類如下
>>> class A(): def __init__(self): self.x = 1 self.y = 2 def __getitem__(self, n): return [self.x, self.y][n]>>> a = A()>>> a.y2>>> a[1]2>>> type(a)<class '__main__.A'>這里我們可以通過下標的形式訪問實例中的屬性.
新聞熱點
疑難解答