我是Python新手。我想写一个有两个键的类作为索引器。也需要能够像这样在类中使用它们:
a = Cartesian(-10,-10,10,10) # Cartesian is the name of my class
a[-5][-1]=10
在笛卡尔类中:
def fill(self,value):
self[x][y] = x*y-value
我试着
def __getitem__(self,x,y):
return self.data[x-self.dx][y-self.dy]
但不起作用。
3条答案
按热度按时间qf9go6mv1#
如果您只需要一个轻量级应用程序,可以让
__getitem__
接受一个元组:像这样使用:
但是,如果您正在进行大量数值计算,或者这是应用程序的组成部分,请考虑使用Numpy并将此坐标表示为向量:Link
bnl4lu3b2#
有什么理由需要显式定义
Cartesian()
类吗?例如,它上面有计算方法吗?如果没有,那么只需使用列表中的列表来使用这种类型的语法。如果您确实需要一个类,那么可以考虑向它添加一个
.coordinate(x, y)
方法,而不必尝试使用list语法。icnyk63a3#
接受元组: