Python重载运算符实现自定义序列
在Python中,重载运算符通常是通过定义特定的魔法方法实现的。例如,如果你想要重载加法运算符(+)来实现自定义序列类型,你可以定义__add__方法。
下面是一个简单的例子,展示了如何定义一个CustomSequence类,它可以通过重载加法运算符来连接两个序列:
class CustomSequence: def __init__(self, items=None): self.items = items or [] def __add__(self, other): # 确保other也是CustomSequence类型 if not isinstance(other, CustomSequence): raise TypeError("Unsupported operand type(s)") # 连接两个序列 return CustomSequence(self.items + other.items) def __len__(self): return len(self.items) def __getitem__(self, index): return self.items[index] # 使用例子 seq1 = CustomSequence([1, 2, 3]) seq2 = CustomSequence([4, 5, 6]) # 通过重载加法运算符连接两个序列 combined_seq = seq1 + seq2 print(combined_seq.items) # 输出: [1, 2, 3, 4, 5, 6]
在这个例子中,CustomSequence 类通过定义__add__方法允许两个实例相加。__len__和__getitem__方法则允许CustomSequence实例表现得像一个序列。当你尝试将两个CustomSequence实例相加时,它们的items属性会通过+连接起来。
浙公网安备 33010602011771号