2

Python では、Tuple などの組み込みクラスに新しいメソッドを追加できますか。2 つの新しいメソッドを追加したいと思います: first() はタプルの最初の要素を返し、second() は最初の要素なしで新しいタプルを返します。

たとえば、次のようになります。

x = (1, 2, 3)

x.first()   # 1
x.second()  # (2, 3)

ありがとう

4

2 に答える 2

4

はい、しかし、しないでください。

そんなことを危うく危険なまでに許してしまう、暗く危険な禁断の果実が存在する。しかし、行くには暗い場所です。

むしろ、新しいクラスを作成できます。

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 で自己実装または単一リンク リストを必要とする状況がほとんどないため、これを行わないでください。

于 2013-09-21T18:18:23.860 に答える