default kwargs are evaluated at definition time
This stackoverflow question covers the topic pretty well: http://stackoverflow.com/q/1132941/1547030 From docs.python.org: Default parameter values are evaluated when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that the same “pre-computed” value is used for each call. This is especially important to understand when a default parameter is a mutable object, such as a list or a dictionary: if the function modifies the object (e.g. by appending an item to a list), the default value is in effect modified. This is generally not what was intended. A way around this is to use None as the default, and explicitly test for it in the body of the functionmaster
parent
dfc8fa0e97
commit
14f7b60684
Loading…
Reference in New Issue