関数に与える引数の展開

関数に与える引数にアスタリスクを付けることによって
引数を展開させることができるみたい。
例えば、datetimeモジュールのdateという関数はdate(year, month, day)
のように3つの引数を必要とする。
また、timeモジュールのstrptimeという関数はstrptime(string, format)
のように使って、

>>> import time
>>> time.strptime('20080801', '%Y%m%d')
(2008, 8, 1, 0, 0, 0, 4, 214, -1)

のようにタプルを返してくる。
そこで、strptime関数の戻り値の最初の3つをdate関数に渡そうとして、
単純に渡すと

>>> import datetime
>>> import time
>>> datetime.date(time.strptime('20080801', '%Y%m%d')[:3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: function takes exactly 3 arguments (1 given)

のようにエラーになる。
そこでアスタリスクを付けて渡すと、

>>> datetime.date(*time.strptime('20080801', '%Y%m%d')[:3])
datetime.date(2008, 8, 1)

のようにうまくいく。
アスタリスクを付けて渡すことで引数に展開されるらしい。