Рекурсия Python и операторы возврата

Решено:

curl \
  -X POST \
  -H "Content-Type: multipart/form-data; boundary=----------------------------4ebf00fbcf09" \
  --data-binary @test.txt \
  http://localhost:3000/test

Где test.txt содержит следующий текст и, что наиболее важно, имеет CRLF (\ r \ n) окончания строки :

------------------------------4ebf00fbcf09
Content-Disposition: form-data; name="example"

test
------------------------------4ebf00fbcf09--

Примечания: важно использовать --data-binary вместо простого старого -d, так как первый сохраняет окончания строк (которые очень важны). Также отметим, что граница в теле начинается с лишнего --.

Я собираюсь повторить это, потому что это так важно, но этот файл тела запроса должен иметь окончания строки CRLF. Мультиплатформенный текстовый редактор с хорошей поддержкой конца строки - это jEdit ( как установить окончание строки в jEdit ).

Если вы заинтересованы в том, как я работал с этим (отладка с помощью приложения Ruby on Rails), а не только в качестве окончательного решения, я написал мои шаги по отладке в моем блоге .

17
задан imiric 1 June 2009 в 21:55
поделиться

2 ответа

On your recursive lines, you do not return anything. If you want it to return 0, you should replace them with lines like:

return self.insert(key, root=tmp.left)

instead of just

self.insert(key, root=tmp.left)
24
ответ дан 30 November 2019 в 11:18
поделиться

Вы находитесь внутри функции и хотите вернуть значение, что вы делаете? Вы пишете

def function():
    return value

В вашем случае вы хотите вернуть значение, возвращаемое вызовом функции, поэтому вы должны это сделать.

def function():
    return another_function()

Однако вы делаете

def function():
    another_function()

Почему вы думаете, что это должно работать? Конечно, вы используете рекурсию, но в таком случае вы должны помнить Дзен Python, который просто говорит:

Особых случаев недостаточно, чтобы нарушать правила.

18
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: