运行时错误:调用Python对象时超过最大递归深度,获取数据库中的多边形点
我正在尝试在用户点击谷歌地图时绘制存储的多边形点。我使用的是Postgres数据库。我已经成功地将多边形存储到数据库中。当我尝试自动绘制多边形点时,出现了递归错误。以下是我的代码:
class drawPolygon(Base):
__tablename__ = "tbl_data_area"
id = Column(Integer, nullable=False, primary_key=True)
area = Column(Geometry('Polygon'))
name = Column( Text )
_poly = None
def getPoly(self):
if not self._poly:
self._poly = to_shape(self.area)//i get error here
return self._poly
def getAreaPoints(self):
return self.getPoly().area
area = property(getAreaPoints)
我不知道self.area有什么问题。当执行self._poly = to_shape(self.area)这一行时,我收到了这个错误:RuntimeError: 超过了调用Python对象时的最大递归深度。我被这个问题困住了。有没有人能帮帮我呢?
1 个回答
1
你有一个列和一个属性,名字都是 area
:
area = Column(Geometry('Polygon'))
# ...
def getAreaPoints(self):
return self.getPoly().area
area = property(getAreaPoints)
后者替代了前者。因此,当你在 self.getPoly()
中访问 self.area
时,它使用的是这个 属性,而这个属性又会再次调用 self.getPoly()
。
如果你想在 getPoly()
方法中使用这个列的话,你需要把列或者属性的名字改一下。