ページへ戻る
− Links
印刷
Python/関数定義
の編集 ::
NJF Wiki
xpwiki
:
Python
/
関数定義
の編集
Python/関数定義 の編集
詳細な入力項目を表示
ページタイトル
( 空白で自動設定 )
:
ページ並び順
( 0-9 小数可 標準:1 )
:
ページ別名
(複数は[
改行
]で区切る)
:
ページ内容:
*定義 [#l4e80570] Pythonで関数を定義するには「def」を使います。 def testFunc(): print "test" testFunc() 結果 test *引数 [#mdc0eaa9] **通常の引数 [#p42d61c3] 関数定義の時に引数も定義できます。 def testFunc(a,b,c): print "a:%s,b:%s,c:%s" % (a,b,c) testFunc("a","b","c") 結果 a:a,b:b,c:c **引数の指定 [#h976c8bf] 関数を呼び出すときに、どの引数に値を入れるかを指定できます。このとき、値を指定した場合は、引数の順番は無視されます。 testFunc(b="b",a="a",c="c") 結果 a:a,b:b,c:c 引数の値を指定したものとそうでないものが混在する場合には、必ず指定しない物を先に書かなければなりません。 testFunc("a",c="c",b="b") 結果 a:a,b:b,c:c 順番を守らないとエラーとなります。 testFunc(c="c",b="b","a") 結果 SyntaxError: non-keyword arg after keyword arg **引数のデフォルト値 [#t2746c9d] 引数にデフォルト値を設定することも可能です。 その場合、引数を省略すると定義時のデフォルト値が使われます。 def testFunc(a, b = "b", c = "c"): print "a:%s,b:%s,c:%s" % (a,b,c) testFunc("a","b") 結果 a:a,b:b,c:c 関数を定義するときには、デフォルト値のないもの、デフォルト値のあるものの順に定義しないとエラーとなります。 def testFunc(a = "b", b, c = "c"): print "a:%s,b:%s,c:%s" % (a,b,c) 結果 SyntaxError: non-default argument follows default argument **可変引数 [#aafb6bf9] 可変引数にも対応しています。引数をリストで受け取りたい場合は、「*」を使います。 def testFunc(*i_list): for i in i_list: print i testFunc(1,2) 結果 1 2 このとき、引数をリストで指定することも可能です。その時には呼び出し時の引数にも「*」を付けます。 testFunc(*[1,2,3]) 結果 1 2 3 「**」を使うと辞書オブジェクトで引数を受け取ることも可能です。 def testFunc(**i_dic): for k,v in i_dic.iteritems(): print k,v testFunc(A='a',B='b') 結果 A a B b リストと同様に、関数呼び出し時の引数に「**」を付けることで、辞書オブジェクトを引数とすることもできます。 testFunc(**{'A':'a','B':'b'}) 結果 A a B b *その他 [#ra7ba935] **関数を変数に入れる [#q6265069] 関数は変数に入れることもできます。 def testFunc(a, b, c): print "a:%s,b:%s,c:%s" % (a,b,c) f = testFunc f("a","b","c") 結果 a:a,b:b,c:c ただし、定義と同時に変数や関数の引数には入れられないため、その場合はラムダ式を使います。ラムダ式については「[[Python/ラムダ式]]」を参照のこと。 **再帰関数 [#ed12d72f] 再帰関数も使えます。 def printN(n): if n > 0: print n printN(n-1) printN(3) 結果 3 2 1 **ドキュメントストリング [#t8b3f869] 関数やクラス定義のすぐ下に書かれた引用符で囲まれた部分はドキュメントストリングと呼ばれ、「__doc__」で参照することができます。 def testFunc(a, b, c): """print a,b,c""" print "a:%s,b:%s,c:%s" % (a,b,c) print testFunc.__doc__ 結果 print a,b,c 「"」「'」「"""」「'''」どれでも書けますが、複数行に渡るときもあるので、三重引用符を使うのが普通です。 このドキュメントストリングは対話モードで「help()」でも参照可能です。IDEなどでも表示してくれることもあります。なるべく関数の機能がわかるようなコメントを書いておきましょう。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「大阪」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
添付ファイル
[2]
:
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E9%96%A2%E6%95%B0%E5%AE%9A%E7%BE%A9
(This host)
/cms/modules/xpwiki/?plugin=attach&pcmd=list&refer=Python%2F%E9%96%A2%E6%95%B0%E5%AE%9A%E7%BE%A9