2012年12月6日木曜日

開発環境

『初めての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 コメント:

コメントを投稿