[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
以上