1

私はPythonの初心者なので、この初心者の質問を許してください。私はクラスと関数を持っています:

class Datasource(mapnik.PythonDatasource):
    def __init__(self):
        super(Datasource, self).__init__()

    def features(self, query):
        return mapnik.PythonDatasource.wkb_features(mvt)

def tileLayer(request, version, shapefile_id, zoom, x, y):
    mvt = requestHandler(request, zoom, x, y)

    datasource = mapnik.Python(factory='Datasource')

mvt呼び出し時に変数をDatasourceクラスに渡すにはどうすればよいですかmapnik.Python(factory='Datasource')

4

1 に答える 1

1

メソッドに追加の引数を追加できますmapnik.Python- それらは datasource に渡されます__init__:

mvt = requestHandler(request, zoom, x, y)
datasource = mapnik.Python(factory='Datasource', mvt=mvt)

Datasourceクラス__init__メソッド定義に引数を追加し、それを使用しmvtてクラス インスタンスに保存します。

class Datasource(mapnik.PythonDatasource):
    def __init__(self, mvt):
        super(Datasource, self).__init__()
        self.mvt = mvt

    def features(self, query):
        return mapnik.PythonDatasource.wkb_features(self.mvt)
于 2014-02-23T19:59:40.697 に答える