Pythonにはプライベートメソッドめいた機能はないので、外部に見せたくない関数・メソッドには「_(アンダースコア)」を付けて外部公開していないことを表明しましょうみたいに指導されるわけだが。
そういう時、公開したくない関数をクロージャで関数内関数として定義すれば外部からは完全に不可視化されるので、関数・メソッドを不可視化するという目的としては完全に達成されるのだが、これは邪道なんだろうか。
そこまでして隠したい状況は何かというと、ある関数の可読性の為だけに特定の処理を関数化して切り出したい時とか?
特定の関数の処理に強く依存しているので、別の関数からも見えて欲しくないというか。
例えば、クソ面倒な判定ロジックを関数に閉じ込めて利用側からはパラメータを与えるだけで使えるようにしたい(ただし、それを利用するのはたった一つの関数のみ)みたいな場合は、クロージャに押し込めた方がスコープがはっきりするからコードが理解しやすくなるような気がするんだがどうなんだろうか。