このユースケースでは、関数のパラメーターの受け渡しについて説明します
私が使用しているPythonのバージョンは3.3.2です
関数の場合:
1
2
3
4
5
6
7
8
def fun(arg):
print(arg)
def main():
fun('hello,Hongten' )
if __name__ == '__main__':
main()
fun() 関数にパラメータを渡すと、渡されたパラメータ値の情報を出力できます。
ここに印刷される情報は次のとおりです:
こんにちは、Hongten
次の使用例の場合:
1
2
3
4
5
6
7
8
9
def fun(a=1, b=なし, c=なし, *args):
print('{0},{1},{2},{3}'.format(a, b 、c、引数)))
()
渡されたパラメータが fun(a='one') および fun('one') の場合、値はパラメータ a にコピーされます。 2 つのパラメータはすべて同じです:
one,None,None,()
one,None,None,()
もちろん、パラメータに値を割り当てることもできます: b、c、*args
として:
1
2
3
4
5
6
7
8
def fun(a=1, b=なし, c=なし, *args) :
print('{0},{1 },{2},{3}'.format(a, b, c, args))
def main():
楽しい('one',1,2,('hongten'))
('hongten',)
上記の例では、パラメーター * の前にあるパラメーター a、b、c をバイパスすることはできません。 args を取得して *args にコピーします:
例:
def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(args=('hongten')) if __name__ == '__main__': main()
実行効果:
トレースバック (最新の呼び出し最後):
ファイル "E:/Python33/python_workspace/test_fun.py"、行21、
main() 内 ファイル "E:/Python33/python_workspace/test_fun.py"、18 行目、main fun(args=('hongten')) 内TypeError: fun() got予期しないキーワード引数 'args' ですしかし、パラメーター: a、b、c については、この Assign 値を のような方法で使用できます:def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(c=('hongten'), b=2, a=[1,2,3]) if __name__ == '__main__': main()動作効果: [1, 2, 3],2,ホンテン,()