- くだすれPython(超初心者用) その24
492 :デフォルトの名無しさん[sage]:2014/09/16(火) 00:41:42.43 ID:cG0GrrN4 - >>491
http://docs.python.jp/3.3/reference/compound_stmts.html#function-definitions 太字で「デフォルトパラメタ値は関数定義が〜」の部分
|
- くだすれPython(超初心者用) その24
497 :デフォルトの名無しさん[sage]:2014/09/16(火) 01:00:14.87 ID:cG0GrrN4 - >>494
ごく普通に「Python 言語リファレンス」から「関数定義」を探すだけ >>496 ちがう a.__defaults__ のタプルとしてデフォルトパラメタ値が記憶されている 呼び出しのたびにそこから値がコピーされるだけ
|
- くだすれPython(超初心者用) その24
503 :デフォルトの名無しさん[sage]:2014/09/16(火) 01:24:54.05 ID:cG0GrrN4 - >>498
ミュータブルであるかイミュータブルであるかの違い イミュータブルなオブジェクト(数値や文字列やタプルなど)は、生成後に内容を書き換えることができない 一方、ミュータブルは(リストや辞書など)は、生成後でも内容を書き換えができる i = 1 i = 2 これは一見内容を書き換えてるように見えるけど 実際は別のオブジェクトに差し替えている(内容書き換えではない)
|
- くだすれPython(超初心者用) その24
505 :デフォルトの名無しさん[sage]:2014/09/16(火) 01:32:12.86 ID:cG0GrrN4 - >>502
l_default = 0 def a(n): l = l_default l += n return l print(a(1)) print(a(1)) print(a(1)) こんな風に書き直せば理解でしやすいと思う l_default = [] def a(s): l = l_default l.append(s) return l print(a(1)) print(a(2)) print(a(3))
|