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 并传入如上的类型。
我正在使用 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 并传入如上的类型。