2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
從文檔:
object.__getitem__(self, key)
要求對實(shí)施評估
self[key]
。...
通過實(shí)施__getitem__
,您可以使用方括號表示法來檢索項(xiàng)目:
s[2]
或通過__getitem__
顯式調(diào)用(我不會這樣做):
s.__geitem__(2)

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
Blender的回答很簡單,但值得一提的是,我注意到您輸入了:
getitem(s, 2)
看來您在想這樣的事情:
def __getitem__(self, x):
| |
--------- |
| ------------
v v
getitem(s, 2)
請注意,當(dāng)您為一個(gè)類定義一個(gè)方法并將其self作為參數(shù)傳遞時(shí),您正在將該類的實(shí)例(即,對象)指定為,這可能對我有好處,也可能無益self。因此,當(dāng)您self.s = s說“將此對象的值設(shè)置s為參數(shù)s的值”時(shí),就可以說。
self不成為括號中的論點(diǎn)之一;您可以認(rèn)為該論點(diǎn)是括號之外的特殊論點(diǎn)。
def __getitem__(self, x):
| |
------------------ |
| ---------
v v
s.__getitem__(2)
再次,正如Blender所說的,由于它__getitem__()是一個(gè)特殊功能(有點(diǎn)像下標(biāo)的運(yùn)算符覆蓋),因此您不應(yīng)該直接調(diào)用它-只是要提防!
添加回答
舉報(bào)