У меня очень простой код на Python для доступа к простой службе очереди Amazon. Но я получаюPython3 Flask - отсутствует 1 обязательный позиционный аргумент: 'self'
builtins.TypeError
TypeError: get_queue() missing 1 required positional argument: 'self'
Мой код:
class CloudQueue(object):
conn = boto.sqs.connect_to_region("eu-west-1",
aws_access_key_id="abc",
aws_secret_access_key="abc")
@app.route('/get/<name>')
def get_queue(self, name):
if(name != None):
queue = self.conn.get_queue(str(name)) <--------- HERE
return conn.get_all_queues()
if __name__ == "__main__":
cq = CloudQueue()
app.debug = True
app.run()
И действительно, 'self' не определен; ваш метод не имеет параметра вообще. Вы не можете зарегистрировать метод в классе в любом случае, потому что метод не привязан к экземпляру, когда вы регистрируете его с помощью декоратора. –
я получаю builtins.TypeError TypeError: get_queue() недостающий 1 необходимый позиционную аргумент: «я» , когда я добавить себя в DEF get_queue (самоощущение, имя) – user2988649
@ user2988649: точно, это то, что я имел в виду * Вы не можете зарегистрироваться метод*. Декоратор запускается * тут же * перед созданием объекта класса, поэтому вы регистрируете только функцию, а не метод, связанный с экземпляром. –