def f1(): print "Hello f1!" def f2(name): print "Hello " + name + "!" f1() f2("Huga")
→
Hello f1! Hello Huga!
def f3(a1, a2 = 'default'): print "a1 = " + str(a1) print "a2 = " + str(a2) f3(123) f3(456, 789)
→
a1 = 123 a2 = default a1 = 456 a2 = 789
def f4(who, greet = "Hello", times = 5): print greet * times, print ", " + who f4("Taro", "Bonjour", 3) f4("Hanako", greet = "Good Night", times=2) f4("Fuga", times=3) f4("Bohe", greet = "Good-Bye")
→
BonjourBonjourBonjour , Taro Good NightGood Night , Hanako HelloHelloHello , Fuga Good-ByeGood-ByeGood-ByeGood-ByeGood-Bye , Bohe
def f5( a1, *args): print repr(a1) print repr(args) for i in args: print i f5(1, 2, 3) f5(*(4, 5, 6))
→
1 (2, 3) 2 3 4 (5, 6) 5 6
内部的にはタプルとして渡ってくる。
def f6(a1, a2, **opts): print "a1 = " + str(a1) print "a2 = " + str(a2) for (k, v) in opts.items(): print str(k) + " = " + str(v) f6('foo', 'bar', buz = 'hoge', aaa = 123)
→
a1 = foo a2 = bar buz = hoge aaa = 123
Erlangを勉強した事があったので、こういう小手先技も思いつきました。
def f7(*l): head = l[0] r = l[1:] print head if len(r) != 0: f7(*r) f7(1, 2, 3, 4, 5)
→
1 2 3 4 5
コメント