this post was submitted on 15 Jan 2025
88 points (98.9% liked)

Programmer Humor

32893 readers
941 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

A small collection of WTF code snippets sorted by language.

you are viewing a single comment's thread
view the rest of the comments
[–] FourPacketsOfPeanuts@lemmy.world 24 points 2 days ago* (last edited 2 days ago) (1 children)

Python item 1

Mutable default arguments don't get re-initialized with each function call.

got an audible wtf from me... Been using python for years, totally unaware.

[–] expr@programming.dev 9 points 2 days ago (1 children)

Mutating function arguments is pretty wtf to begin with.

[–] FourPacketsOfPeanuts@lemmy.world 6 points 2 days ago* (last edited 2 days ago)

true, and i can't think of a legitimate case where it would have tripped me up. but if someone, a novice perhaps, wrote

def some_func(foo, bar=[1, 2, 3]):
    bar.reverse()  # for whatever reason
    print(bar)

some_func('hello')    # output [3,2,1]
some_func('hello')    # output [1,2,3] 

i think they would be within their rights to be surprised that calling this function twice has different results. that's what i was surprised by; it feels like bar would be re initialised each time with a scope of the function but apparenty not