簡體   English   中英

如何在 Python 中定義數組類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM