デフォルト引数を使っているときに、呼び出しがネストしすぎると逆にデフォルト引数が鬱陶しくなったり、
内部で引数の指定し忘れが起こったりしそうになります。
Pythonの場合で例をあげます。
python
1class TestA: 2 def __init__(self, num): 3 self._num = num 4 5 def calc_testA(self, n=1): 6 return self._num * self._private_calc(n=n) # この部分(n=n)が冗長かつミスが起こりやすい 7 8 def _private_calc(self, n=1): # つまりはここのデフォルト引数を普通の引数に直す 9 return 100*n 10 11class TestB: 12 def __init__(self, num): 13 self._num = num 14 15 def calc_testB(self, num_a, n=1): 16 test_a = TestA(num_a) 17 return test_a.calc_testA(n=3)*self._num 18 19def main() 20 test_b = TestB(7) 21 res = test_b.calc_testB(4, n=20)
このように関数が2個ネストするような場合にデフォルト引数を連続させてしまうのは悪いと考えているのですが
そういう認識で合っていますでしょうか?また、むしろデフォルト引数でも良いという考え方があるならば教えて欲しいです。
回答4件
あなたの回答
tips
プレビュー