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