##Day 2 Agenda
Author: Rick Copeland
Date: June 17, 2014
Session 3, the second half
def func(a, b):
pritn a, b
func('foo', 'bar') # order matters
func(b='foo', a='bar') # order wont matter
lambda_addr = lambda a, b : a+b
lambda_addr(1, 2)
One line and one expressions, very similar to anonymous function in JavaScript.
Be careful when uses default argument
Rule of Thumb: never uses mutable default argument.
Side notes:
Python name spaces:
1. module level name space
2. function level name space
pack: *pack = a, b
unpack: a, b = *pack
i.e.
def func(name, *args):
return sum(args)
i.e.
def func(**kwargs):
return kwargs
ret = func(a=1, b=2)
def rec(first, *rest):
print first, rest
if rest:
return rec(rest[0], rest[1:])
else:
return first
rec(1,2,3)
-
pre_order
-
in_order
-
post_order
i.e.
def make_adder(val):
def adder(other_val):
return val + other_val
return adder
add5 = make_adder(5)
add5(10)
See you next time