[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12956] Re: [jfriends-ml 12952] Effective Java 2nd edition (第一回) 議事録.



小棚木です。

"named optional parameter"についてのサンプルをPythonで作ってみました。

検証環境は以下のとおりです。
OS: Windows XP SP2
Python: python2.5.2/jython2.2.1(Java 1.6.0_07)

-- ここから
# coding: Shift_JIS

def item02(servingSize, servings, calories=0, fat=0, sodium=0, carbohydrate=0):
   print 'servingSize', servingSize
   print 'servings', servings
   print 'calories', calories
   print 'fat', fat
   print 'sodium', sodium
   print 'carbohydrate', carbohydrate
#メソッドはここで終わり

print 'すべてのパラメータ指定'
item02(240, 8, 100, 0, 35, 27)
print

print 'fatを省略'
item02(240, 8, 100, sodium=35, carbohydrate=27)
print

print 'パラメータの順番を入れ替える'
item02(calories=100, sodium=35, servingSize=240, carbohydrate=27, servings=8)
print
-- ここまで

def item02でメソッドを定義しています。
必須以外のパラメータには初期値0をつけて定義しています。これでパラメータ が省略が可能になります。

1つ目の呼び出しはTelescopingパターンで全ての値を指定しています。
2つ目はfatを省略したので、それ以降に対して名前つきで値を指定しています。
3つ目はすべてのパラメータを名前つきで指定して、さらに指定順序もバラバラ にしています。

出力結果はいずれも以下のようになります。
servingSize 240
servings 8
calories 100
fat 0
sodium 35
carbohydrate 27

以上