我正在编写一个代码来返回点列表中点的坐标。点数类的列表定义如下:
class Streamline:
## Constructor
# @param ID Streamline ID
# @param Points list of points in a streamline
def __init__ ( self, ID, points):
self.__ID = ID
self.__points = points
## Get all Point coordinates
# @return Matrix of Point coordinates
def get_point_coordinates ( self ):
return np.array([point.get_coordinate() for point in self.__points])使用
class Point:
## Constructor
# @param ID Streamline ID
# @param cor List of Coordinates
# @param vel List of velocity vectors (2D)
def __init__ ( self, ID, coord, veloc):
self.__ID = ID
self.set_coordinate( coord )
self.set_velocity( veloc )问题是,我在代码开始时定义了一个流线型,在点列表中有一个点。沿着这条路,我调用了函数get_point_coordinates,点列表上的迭代会引发以下错误:
return np.array([point.get_coordinate() for point in self.__points])
TypeError: iteration over non-sequence我需要找到一种方法来绕过这个错误,并且整齐地返回一个具有点坐标的1x2矩阵。
我看过this question,但没有多大帮助。
发布于 2016-03-16 10:20:26
sl = Streamline(ID, [first_point])Streamline(ID, point1))和点序列(Streamline(ID, [point1, point2, ...]))是个坏主意。如果你愿意的话,你可以
从集合导入Iterable类流线型: def __init__ ( self,ID,first_point):self.__ID = ID self.__points = points isinstance( points,Iterable)*解压缩参数中给出的点,以启用Streamline(ID, point1)和Streamline(ID, point1, point2, ...)。
类流线: def __init__ ( self,ID,* points ):self.__ID = ID self.__points =pointshttps://stackoverflow.com/questions/36032280
复制相似问题