Как полностью переназначить словарь, который является изменяемым значением по умолчанию в формальных параметрах функции Python

Программы на Python
Ответить
Anonymous
 Как полностью переназначить словарь, который является изменяемым значением по умолчанию в формальных параметрах функции

Сообщение Anonymous »

Код: Выделить всё

def myfunc(l=[]):
if not l:
l[:] = otherlist
Предыдущий фрагмент кода полностью переназначает список l любому списку, хранящемуся в переменнойotherlist, и сохраняет это значение при вызовах функций myfunc.

Код: Выделить всё

def myfunc(d={}):

d.clear()
for k, v in otherd.items():
d[k] = v
В этом примере предположим, что словарьotherd находится в области вызова функции, но не указан явно.
Есть ли способ полностью переназначить словарь d более простым способом, чем прямое переназначение в приведенном примере?
Примечание.
Изменяемые значения по умолчанию: значение, которое инициализируется и сохраняется при первом вызове функции. При мутации он сохраняет это состояние при вызовах функций, поэтому при доступе он вернет самое последнее состояние, а не исходное.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-in-the-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»