開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)のまとめ演習4(キーワード引数(**args))を解いてみる。
その他参考書籍
4.
コード(TextWrangler)
sample.py
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
def adder(good=1, bad=2, ugly=3):
return good + bad + ugly
print(adder(4))
print(adder(4,5))
print(adder(4,5,6))
try:
print(adder(4,5,6,7))
except Exception as err:
print("エラー: {0}".format(err))
print(adder(ugly=1, good=2))
def adder1(**args):
keys = list(args.keys())
result = args[keys.pop()]
for key in keys:
result += args[key]
return result
print(adder1(a=1, b=2))
print(adder1(a=1,b=2,c=3,d=4,e=5))
入出力結果(Terminal)
$ ./sample.py 9 12 15 エラー: adder() takes from 0 to 3 positional arguments but 4 were given 5 3 15 $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var result = "";
function adder(good, bad, ugly){
good = good || 1;
bad = bad || 2;
ugly = ugly || 3;
return good + bad + ugly;
}
result += adder(4) + "\n" +
adder(4,5) + "\n" +
adder(4,5,6) + "\n" +
// javascriptでは渡しすぎた引数は無視されるだけでエラーにはならない
adder(4,5,6,7) + "\n";
function adder1(args){
var result = null;
for(var p in args){
result += args[p];
}
return result;
}
result += adder1({'a':1,'b':2}) + "\n" +
adder1({'a':1,'b':2,'c':3,'d':4,'e':5}) + "\n";
$('#pre0').text(result);
0 コメント:
コメントを投稿