開発環境
- 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 コメント:
コメントを投稿