Русский
Открыть в Telegram

Ветка /code

14 сообщений · –
V
/code def f0(): try: return 1 finally: return 2 def f1(): x = 1 try: return x finally: x = 99 def f2(): x = [1, 2] try: return x finally: x.append(3) print(f0()) print(f1()) print(f2())
  1. P
    Status: Succeeded Exit code: 0 Execution time: 1.8s Code def f0(): try: return 1 finally: return 2 def f1(): x = 1 try: return x finally: x = 99 def f2(): x = [1, 2] try: return x finally: x.append(3) print(f0()) print(f1()) print(f2()) Result 2 1 [1, 2, 3]
      1. V
        Что-то ты не совсем точно сказал. Мутабельность конечно тут влияет, но это только кусок ответа
        1. Д
          ну мне кажется я понял в чем нюанс, не буду лишать радости ребят с чата
          1. R
            Закинуть под спойлер и вперед
    1. A
      Я так понимаю: f0() - finally выполняется в любом случае не зависимо от ошибок в try. f1() - выводится 1, так как на момент вызова x = 1, а уже после x = 99. f2() - выводим список через переменную x, и затем к этому же списку добавляем значение, тоесть метод append не возвращает новый список, а изменяет имеющийся
      1. R
        f1 потому что инты не мутабельны, а имена переменных это можно сказать алиасы на указатели. Вернули указатель на 1, а потом создали новый на 99 f2 тоже возвращает поинтер на лист, но потому что он мутабельный - у него изменился стейт после аппенда, и получилось 1, 2, 3
          1. R
            Да уже как 2 недели прошло, некропостингом то чо заниматься)
  2. M
    f1 возвращается ссылка на 1, потом в x падает ссылка на 99. Разные ссылки в общем. f2 до или после возврата (не уверен), меняется лист по ссылке. К f0 вопросики. Мейби там подменяется возвращаемая ссылка при работе finally
ССообщество Python ПрограммистовСообщество Python Программистов@python_scripts · группа · Технологии
4 169участников44пишущих за 30 дней
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем