Я думаю, что вы неправильно понимаете код здесь.
self.create_items(app_items)
не вызывает функцию basic_backend , она вызывает функцию ModelBasic , которая не существует.
self
переменная, которая является ссылкой на текущий объект
def __init__(self, app_items):
self._item_type = 'product'
self.create_items(app_items)
Здесь вы можете видеть, что первый аргумент - это self, он может быть назван как угодно, но принято называть его self.
Что делает питон при вызове этого метода, так это то, что он передает текущий объект первому аргументу.self.item_type
говорит, что возьмите этот объект и определите переменную item_type в виде строки 'product'
Однако self.create_items(app_items)
завершится ошибкой, поскольку у вашего объекта нет метода app_items.