Skip to content

Instantly share code, notes, and snippets.

@vtemian
Created May 4, 2015 15:58
Show Gist options
  • Save vtemian/039b1383850661cdda59 to your computer and use it in GitHub Desktop.
Save vtemian/039b1383850661cdda59 to your computer and use it in GitHub Desktop.
Python gotcha
# mutable list
def foobar(arg_string="abc", arg_list=[]):
print arg_string, arg_list
arg_string = arg_string + "xyz"
arg_list.append("F")
for i in range(4):
foobar()
"""
results
abc []
abc ['F']
abc ['F', 'F']
abc ['F', 'F', 'F']
"""
# late binding
def create_multipliers():
return [lambda x : i * x for i in range(5)]
for multiplier in create_multipliers():
print multiplier(2)
"""
8
8
8
8
8
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment