Как правильно определить __repr__
для моего класса карты?
class map(object):
"""Find data folders that could be imported and return as list"""
def __init__(self,height=400,zoom=0):
"""Initialize the map"""
if zoom == 0:
z = get_map_zoom()
else:
z = zoom
self.map = Map(center=get_map_center(), zoom=z)
self.map.layout.height = f'{height}px'
def __repr__(self):
return self.map
def add_layer(self,tableName:str,style_name='default',geomColumn:str = 'geom'):
"""Get GeoJSON data from database and add as layer to map"""
data = db.execute(f'SELECT ST_AsGeojson(ST_Transform({geomColumn},4326)) from {tableName} order by random() limit 5000;')
style = get_style(style_name)
geo_json = GeoJSON(style=style,data={'type': "FeatureCollection", 'features': [json.loads(row[0]) for row in data]})
self.map.add_layer(geo_json)
Из Jupyter я создаю карту так:
from modules import map
m = map.map()
m.add_layer('geo.service_area','service_area')
m.add_layer('rawgeo.ways',geomColumn='the_geom')
display(m)
Но ошибка TypeError: __repr__ returned non-string (type Map)
возникает на display(m)
.
Я могу заставить его работать, если вместо этого использую display(m.map)
.