Python - 将新功能应用于内置 类

Python - Applying new functions to builtin classes

我正在使用 Python 2.6.6,我想知道我是否可以将新功能应用于内置 classes 和类型 without subclass正在处理它,例如:

t1 = (20,20)
t2 = (40,30)
print t2 - t1 #gives me (20,10)
print t2 + t1 #gives me (60,50)

为此,我需要向元组 class 添加 __sub__ 和 __add__ 函数。 可能吗?

你不一定非要 subclass,你可以创建一个 class 并传入一个元组,确保你还定义了一个 __getitem__ 方法:

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 扩展模块中定义的任何类型,因为它们 不可变 ,如果您想要不同的行为,您需要子 class 或创建自定义 class 并传入如上的类型。