如何在Python中定义数组类?

2024-10-01 07:13:20 发布

您现在位置: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)]

Tags: inselffor定义initdefrange数组
1条回答
网友
1楼 · 发布于 2024-10-01 07:13:20

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__中的i减去一,然后__setitem__将基于1的索引映射到列表使用的基于0的索引

相关问题 更多 >