Я новичок в python и в настоящее время использую Flask rest-plus для предоставления базовых операций CRUD и документации по разным ресурсам для различных ресурсов.
В настоящее время я занимаюсь
api = DTO.api
_response = DTO.response
_response_list = DTO.response_list
@api.route('/')
class SomeResourcetList(Resource):
@api.marshal_with(_response_list)
def get(self):
return some_list_response
@api.marshal_with(_response)
def post(self):
return "Object created"
@api.route('<equipment_id>')
class SomeResource(Resource):
@api.marshal_with(_response)
def get(self):
return some_response_object
@api.marshal_with(_response)
def put(self):
return some_updated_response
def delete(self):
return "Some delete response
Все вышеперечисленное работает нормально и предоставляет CRUD для ресурса / сущности
Что я хочу: Я хочу поместить выше 2 классов в BaseClass, чтобы я мог наследовать свойкласс ресурсов из них и все основные операции CRUD уже включены (чтобы сохранить код сухим) их.но при этом я попадаю в ситуацию, когда внутренний класс не может получить доступ к переменным внешнего класса, в моем случае это api Есть ли способ, которым я могу достичь этого?
class BaseController:
def __init__(self, resource = 'equipment'):
self.__Resource = resource
# initialize api from child object
self.api = PersonDTO.api
@api.route('/')
class SomeResourcetList(Resource):
@api.marshal_with(_response_list)
def get(self):
return some_list_response
@api.marshal_with(_response)
def post(self):
return "Object created"
@api.route('<equipment_id>')
class SomeResource(Resource):
@api.marshal_with(_response)
def get(self):
return some_response_object
Есть ли какое-либо решение для вышеуказанной проблемы (в которой мы можем получить доступ к переменным внутри внутренних классов) или есть еще одна работа?