__len__ と __getitem__ を実装して、len() と for ループの両方で使えるようにしよう。__len__ は len() の、__getitem__ は obj[i] や for の動きを決めます。class Deck:
def __init__(self, cards):
self.cards = cards
def __len__(self):
return len(self.cards)
def __getitem__(self, index):
return self.cards[index]
d = Deck(['A', 'K', 'Q'])
print(len(d))
print(d[0]) → 3 AWordList クラスに、次の2つのメソッドを追加する__len__(引数は self だけ)… self.words の個数を返す__getitem__(引数は self と index)… self.words の index 番目を返すlen(wl) と for word in wl の両方が動くようになるlen(obj) や for x in obj、obj[0] がそのまま効くので、使う人が新しい使い方を覚えずに済みます。__len__ は個数を return する__getitem__ があると for でまわせる3 Python Java Go
全問正解でクエストクリア!
問題 1: NumberRange クラスに __len__ と __getitem__ を実装して 1〜5 を for で表示しよう!
問題 2: Matrix クラスで 2×2 行列 [[1,2],[3,4]] に __getitem__ を実装して [0][1] の値を表示しよう!
問題 3: Sentence クラスに __len__(単語数)と __getitem__(単語取得)を実装して len() と [1] を表示しよう!