import requests with requests.Session() as s: s.get('http://python.su/')
В доках написано что with гарантирует закрытие соединения, но может кто написать реальные примеры использования данной конструкции? Есть ли реальная разница с:
requests.get(...
import requests with requests.Session() as s: s.get('http://python.su/')
requests.get(...
import requests with requests.Session() as s: s.get('http://python.su/')
XionВ таком случае у тебя у тебя не создается сессия, закрывать нечего (точнее там в кишках все само происходит).
requests.get(…
XionСессию используют если нужно сделать не 1 запрос к сайту, а не сколько. Тогда у тебя каждый раз не создается новая сессия и запрос происходит быстрее + если ты на пример в результате сессии авторизуешься на сайте, то куки у тебя будут автоматом посылаться и ты будешь работать как авторизованный пользователь.
но я не понимаю что мешает просто использовать requests.get?
alex925Вот это я и хотел услышать, а то я даже в session делал:
куки у тебя будут автоматом посылаться
r = s.get... r2 = s.get... cookies=r.cookies ...
FishHookwith с open для меня ясен, спасибо, у меня по requests был основной вопрос
with гарантирует, что файл будет закрыт
Xionа выглядело наоборот….
у меня по requests был основной вопрос
XionДа какая разница то, мыслите ширее. Что-то будет сделано независимо от действий программиста. В том и дело, чтобы вы не думали о последствиях. Файл вы открываете, слот, соединение какое-то, да что угодно, суть в том, что любые ваши действия внутри with завершатся корректно в отношении контекста with. Вы можете свой класс написать, который будет работать с with. Что будет происходить по выходе из with вашего класса будете знать только вы.
with с open для меня ясен, спасибо, у меня по requests был основной вопрос