1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. *による位置引数のタプル化

*による位置引数のタプル化

C,C++プログラムでは

*がポインター関連に使われが、pythonにはポンターはない
函数定義のなかで仮引数の一部として*を使うと、可変個の位置引数をタプルにまとめてその仮引数にセットする。
この機能は、print()のように可変個の実引数を受付ける関数を書く時に役立つ

*args

def print_args(*args):
print('Positional argument tuple:', args)
実引数なしで呼び出すと
print_args()
Positional argument tuple: ()

print_args(3, 2, 1, 'wait!', 'uh...')

Positional argument tuple: (3, 2, 1, 'wait!', 'uh...')

必須の位置引数がある場合には、位置引数の最後に*argを書く

*を使うとき

タプル仮引数をargsと呼ぶ必要は特にないが、Pythonコミュニティでは一般的な習慣になっている

**でのキーワード引数の

ふたつのアスタリスク(**)を使えば、キーワード引数を1個の辞書にまとめることができる。
引数の名前は辞書のキー、引数の値は辞書の値になる
def print_kwargs(**kwargs):
print('keyword arguments:', kwargs)

print_kwargs(wine='merlot', entree='mutton', dessert='macaroon')

keyword arguments:{'dessert':'macaroon', 'wine':'merlot', 'entree':'mutton''}