A small collection of WTF code snippets sorted by language.

  • FourPacketsOfPeanuts@lemmy.world
    link
    fedilink
    arrow-up
    21
    ·
    edit-2
    5 hours ago

    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.

      • FourPacketsOfPeanuts@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        4 hours 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