Back to questions
Junior — Middle
48
Каким образом реализовать функцию в Python с аргументом по умолчанию, который можно изменять внутри функции?
Answer from AI
sobes.tech AI
В Python аргументы по умолчанию инициализируются один раз при определении функции, поэтому изменять изменяемый объект (например, список) внутри функции может привести к нежелательным эффектам.
Чтобы избежать этого, обычно используют значение по умолчанию None и внутри функции создают новый объект, если аргумент не был передан:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
# Пример использования
print(add_item(1)) # [1]
print(add_item(2)) # [2], а не [1, 2]
Такой подход позволяет изменять аргумент внутри функции без риска повлиять на значение по умолчанию между вызовами.