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