mcgrew,
@mcgrew@dice.camp avatar

I just remembered a Python behavior I learned about in college that could have bitten me:

>>> def addbork(borklist=[]):
... borklist.append('bork')
... return borklist
...
>>> addbork()
['bork']
>>> addbork()
['bork', 'bork']

This happens because the default argument is instantiated when the function is defined rather than when it is called, so any changes to the object persist on subsequent calls.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • python
  • DreamBathrooms
  • magazineikmin
  • Youngstown
  • everett
  • rosin
  • slotface
  • thenastyranch
  • ngwrru68w68
  • PowerRangers
  • kavyap
  • cisconetworking
  • tsrsr
  • mdbf
  • tacticalgear
  • Leos
  • khanakhh
  • Durango
  • ethstaker
  • vwfavf
  • InstantRegret
  • modclub
  • tester
  • cubers
  • GTA5RPClips
  • osvaldo12
  • normalnudes
  • anitta
  • provamag3
  • All magazines