Skip to main content
 首页 » 编程设计

python之对象覆盖元组扩展的特殊方法

2025年05月04日18shangdawei

我将提供所讨论问题的示例,以防标题不够清楚。

假设我有一个代表二维坐标的 class Point(object)。 是否可以创建一个允许以下操作的“魔术”方法?

x, y = point 

也许对迭代器进行了一些修改?

请您参考如下方法:

您可以简单地利用对象的迭代器协议(protocol)并完成此操作

class Point(object): 
    def __init__(self, x,y): 
        self.x = x 
        self.y = y 
        self.points = (x,y) 
    def __iter__(self): 
        return iter(self.points) 
 
p = Point(1,5) 
x,y = p 
print x,y 
# 1,5 

看看http://www.rafekettler.com/magicmethods.html#sequence有关如何将自定义对象转换为可迭代对象的更多信息;或者更准确地说,人们将如何使用像可迭代对象这样的对象。