我定义了以下自定义类:
class Point():
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
我有一个Point
对象的列表,名为points
。我现在需要在一个3D散点图中绘制这些点。有没有一种快速的方法可以得到所有点的x值,我可以在类定义中实现这种方法?我知道我可以用
xs = [p.x for p in points]
ys = ...
但是这有点乏味。有没有人知道一种方法可以将它合并到我的类中?或者我需要定义一个PointList
类?
谢谢
2条答案
按热度按时间iqxoj9l91#
您可以使用lambda函数,也可以将其合并为Map对象的常规函数,如下例所示:
输出量:
**附言:**注意:您的
__init___
有3个下划线,这不是__init__
函数(有2个下划线)的覆盖ff29svar2#
您可以建立
PointList
类别。然后您可以这样使用它:
因为它继承自
list
,所以所有标准列表方法都可以工作。注意,这些都是函数。你可以让它们成为getter,在每次执行时运行,但这会增加复杂性,并使需要完成的工作变得模糊。从技术上讲,你可以存储这些列表中的每一个,并返回这些列表,但这会使添加/删除/更新点变得更加复杂(而且返回的列表是可变的)。