Python では、Tuple などの組み込みクラスに新しいメソッドを追加できますか。2 つの新しいメソッドを追加したいと思います: first() はタプルの最初の要素を返し、second() は最初の要素なしで新しいタプルを返します。
たとえば、次のようになります。
x = (1, 2, 3)
x.first() # 1
x.second() # (2, 3)
ありがとう
はい、しかし、しないでください。
そんなことを危うく危険なまでに許してしまう、暗く危険な禁断の果実が存在する。しかし、行くには暗い場所です。
むしろ、新しいクラスを作成できます。
class MyTuple(tuple):
def first(self):
return self[0]
def second(self):
return self[1:]
mt = MyTuple((1, 2, 3, 4))
mt.first()
#>>> 1
mt.second()
#>>> (2, 3, 4)
できれば、これを呼び出すたびにコピーする必要のない実際のリンク リストを作成できます。
できれば、Python で自己実装または単一リンク リストを必要とする状況がほとんどないため、これを行わないでください。