[英]How do I define an array class in Python?
我想定义一个点,然后定义一个由三个点组成的数组作为一个类。 鉴于下面的定义,我可以做到这一点,它的工作原理:
a = [POINT(0,0) for i in range(4)]
但我希望能够做到这一点:
a = THREEPOINTS()
然后这样做:
a[2].x = 7
a[2].y = 3
我的尝试如下,但不起作用。 有没有办法定义一个数组类?
class POINT:
def __init__(self, x, y):
self.x = x
self.y = y
class THREEPOINTS:
def __init__(self):
self = [POINT(0,0) for i in range(4)]
THREEPOINTS
本身不是一个列表; 它将具有列表值属性。
class THREEPOINTS:
def __init__(self):
self.points = [POINT(0,0) for i in range(3)]
def __getitem__(self, i):
return self.points[i]
def __setitem__(self, i, v):
self.points[i] = v
注意使用range(3)
而不是range(4)
来定义 3 个点。 如果您希望将THREEPOINTS
索引为从 1 到 3 而不是 0 到 2,则可以从__getitem__
和__setitem__
i
中减去 1,以将基于 1 的索引映射到列表使用的基于 0 的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.