欢迎来到赛兔子家园

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属性会通过+连接起来。

posted on 2024-09-27 11:00  赛兔子  阅读(49)  评论(0)    收藏  举报

导航