فارسی
باز کردن در 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 недели прошло, некропостингом то чо заниматься)
        1. L
          слово референс уже успели придумать
  2. M
    f1 возвращается ссылка на 1, потом в x падает ссылка на 99. Разные ссылки в общем. f2 до или после возврата (не уверен), меняется лист по ссылке. К f0 вопросики. Мейби там подменяется возвращаемая ссылка при работе finally
ССообщество Python ПрограммистовСообщество Python Программистов@python_scripts · گروه · فناوری
4 169عضو44نویسنده در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما