Українська
Відкрити в 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. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо