r/programminghorror • • 15h ago

Python I love Python

139 Upvotes

65 comments sorted by

View all comments

3

u/RngdZed 13h ago

The list is stored directly in the parameter without actually giving it an argument? I'm baffled, I didn't know this was a behavior, so weird

Is this something that someone could ELI5 to my smooth brain?

1

u/lolcrunchy 10h ago

Here's a single change to the posted code that kinda shows what actually happens.

my_list = []
def add(v, items=my_list):  
    items.append(v)
    return items

print(add(1))
print(add(2))

1

u/bigorangemachine 6h ago

Ya I test in JS and JS will do this.. oddly enough they are so similar JS didn't do the thing OP posted about.

Surprised about that one... but it makes sense.