2

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)
Kadir Şahbaz
78.6k57 gold badges260 silver badges407 bronze badges
asked Dec 25, 2019 at 19:38

1 Answer 1

4

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).

answered Dec 25, 2019 at 20:54

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.