Python-将新函数应用于内置类

Python-将新函数应用于内置类,python,built-in,Python,Built In,我正在使用Python 2.6.6,我想知道我是否可以将新函数应用于内置类和类型,而无需将其子类化,例如: t1 = (20,20) t2 = (40,30) print t2 - t1 #gives me (20,10) print t2 + t1 #gives me (60,50) 为此,我需要向tuple类添加uuu sub_uuuu和uuu add_uuu函数。 有可能吗?您不必严格地进行子类化,您可以创建一个类并传入一个元组,确保您还定义了一个\uuuu getitem\uuuu方法

我正在使用Python 2.6.6,我想知道我是否可以将新函数应用于内置类和类型,而无需将其子类化,例如:

t1 = (20,20)
t2 = (40,30)
print t2 - t1 #gives me (20,10)
print t2 + t1 #gives me (60,50)
为此,我需要向tuple类添加uuu sub_uuuu和uuu add_uuu函数。
有可能吗?

您不必严格地进行子类化,您可以创建一个类并传入一个元组,确保您还定义了一个
\uuuu getitem\uuuu
方法:

class Tuple(object):
    def __init__(self, t):
        self.t = t

    def __getitem__(self, item):
        return self.t[item]

    def __add__(self, other):
        return self[0] + other[0], self[1]+other[1]

    def __sub__(self, other):
        return self[0] - other[0], self[1] - other[1]


t1 = MyTuple((20,20))
t2 = MyTuple((40,30))

print(t2 - t1)
print(t2 + t1)

不能更改C扩展模块中定义的任何类型,因为它们是不可变的,如果您想要不同的行为,您需要子类化或创建自定义类,并按上述方式传入类型。

是否要添加和子值?如果要实现减号,您需要为加号实现sub和add,我也是这样做的。。这只是一个例子,但这有什么问题吗?你的预期输出是什么?