Python:是否可以向 Tuple 类添加新方法

use*_*036 3 python tuples

在Python中,是否可以向内置类添加新方法,例如Tuple。我想添加 2 个新方法:first() 返回元组的第一个元素,second() 返回一个没有第一个元素的新元组。

例如:

x = (1, 2, 3)

x.first()   # 1
x.second()  # (2, 3)
Run Code Online (Sandbox Code Playgroud)

谢谢

Vee*_*rac 5

是的,但不要

存在一种黑暗而危险的禁果,它不安全且危险地允许这样的事情发生。但这是一个黑暗的地方。

相反,您可以创建一个新类:

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)
Run Code Online (Sandbox Code Playgroud)

最好您可以创建一个实际的链接列表,不需要每次调用时都进行复制。

最好也不要这样做,因为几乎没有任何情况需要 Python 中的自我实现或单链表。