Функция дописала тег, и он появился в списке у вызывающего кода
def with_default_tag(tags):
tags.append("new")
return tags
user_tags = ["vip"]
result = with_default_tag(user_tags)
Что теперь в user_tags?
- ["vip", "new"] — в функцию попал тот же самый объект списка
- ["vip"] — аргумент передаётся копией, оригинал не трогается
- ["vip"] — изменения ушли только в result
- ["vip", "new"], но лишь потому, что список вернули через return
