I want to pass this layer = self.iface.activeLayer()
into a function import_meta(self, layer)
to be used like a layer object dpr = layer.dataProvider()
But when I run the script I get error AttributeError: 'xdr_ImportMeta' object has no attribute 'dataProvider' dpr = layer.dataProvider()
I guess the variable's type layer
doesn't pass as I want.
This is the code:
def import_meta(self, layer):
dpr = layer.dataProvider()
def run(self):
layer = self.iface.activeLayer()
self.import_meta(self, layer)
1 Answer 1
Simply put, when you call a function (defined in a class) in own class, you don't need to use self
argument. Python implicitly passes self
as first argument to the function.
So, try to change self.import_meta(self, layer)
into self.import_meta(layer)
.