News for hackers. Stuff that matters.
Re:Anti-Patterns in Python Programming by zo1 on Wednesday July 09, 2014 @03:31PM (#8011762)
The expression presented in the parameter list is only evaluated once, and that is when the method is defined. The confusion is that people assume the expression is evaluated every time the method is called.
Re:Anti-Patterns in Python Programming by kyllo on Wednesday July 09, 2014 @04:06PM (#8011942)
The confusion is that people assume the expression is evaluated every time the method is called.

Because that's how it works in a lot of other languages, such as Ruby and Javascript.

Re:Anti-Patterns in Python Programming by zo1 on Wednesday July 09, 2014 @04:12PM (#8011978)
I doubt that's the only reason. I fell for it myself at first without ever seeing a line of Ruby. It initially feels intuitive, and that's why I think most fall for it.
Re:Anti-Patterns in Python Programming by ollysb on Thursday July 10, 2014 @10:23AM (#8015047)
I think it's because the arguments are bound when the function is called. It's just natural that you'd expect the default values to also be bound at the same time.