次のようなコードがあります。
from functools import lru_cache
@lru_cache()
def get_cheese(type):
print('{}? We\'re all out.'.format(type))
return None
get_cheese(type='cheddar')
get_cheese('cheddar')
print(get_cheese.cache_info())
cache_info()
は、 2 つのミスがあったことを報告していますが、同じ引数で関数を呼び出しました。
実際には少し手間がかかりましたが、あるインスタンスではキーワード arg を使用し、別のインスタンスでは位置引数を使用していたためであることがわかりました。
しかし、なぜですか?