Python リストを合成したクラス
#関数とメソッドの違いってなに?より
# # 対話モード >>> に # コピペで実行できます。 # class Container: def __init__(self, *args): self._values = args def __getitem__(self, index): return self._values[index] def __iter__(self): return iter(self._values) def __len__(self): return len(self._values) container = Container(0, 1, 2) # 1) 直接、添字表記で参照できる。 container[0] container[1] container[2] # 2) 直接、for 文で回せる。 for element in container: element # 3) 直接、len 関数でオブジェクトの長さを取得できる。 len(container)
>>> # 1) 直接、添字表記で参照できる。 ... container[0] 0 >>> container[1] 1 >>> container[2] 2 >>> >>> # 2) 直接、for 文で回せる。 ... for element in container: ... element ... 0 1 2 >>> # 3) 直接、len 関数でオブジェクトの長さを取得できる。 ... len(container) 3 >>>
class Container(tuple): def __new__(cls, *args): return super().__new__(cls, args) container = Container(0, 1, 2) # 1) 直接、添字表記で参照できる。 container[0] container[1] container[2] # 2) 直接、for 文で回せる。 for element in container: element # 3) 直接、len 関数でオブジェクトの長さを取得できる。 len(container)
コメント
コメントを投稿