170 похожих чатов

Где почитать про это поведение? In [15]: def foo(arr=[]):

...: arr.append(1)
...: return arr
...:

In [16]: foo()
Out[16]: [1]

In [17]: foo()
Out[17]: [1, 1]

In [18]: foo()
Out[18]: [1, 1, 1]

In [19]: arr
-----------
NameError: name 'arr' is not defined

6 ответов

14 просмотров

Ну это азы петона из области работы с памятью и интерпретации языка

2lb3oz4dr10½grOfHedgehogs- Автор вопроса
Vlad Kovalchuk
Ну это азы петона из области работы с памятью и ин...

Ну я понимаю, просто то что локальная переменная не очищается, меня смущает. Как нагуглить?

какое? области видимости переменных? внутренняя мутабельность значений по умолчанию?

2lb3oz4dr10½grOfHedgehogs
Ну я понимаю, просто то что локальная переменная н...

Она у тебя создаётся в момент интерпретации и в дальнейшем берётся конкретный объект, а не создаётся новый

2lb3oz4dr10½grOfHedgehogs- Автор вопроса
Vlad Kovalchuk
Она у тебя создаётся в момент интерпретации и в да...

И это потому что оно в аргументах функции создается? In [24]: foo([1,2]) Out[24]: [1, 2, 1] In [25]: foo([1,2]) Out[25]: [1, 2, 1] In [20]: def bar(): ...: arr=[] ...: arr.append(1) ...: return arr ...: In [21]: bar() Out[21]: [1] In [22]: bar() Out[22]: [1]

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

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта