1. ホーム
  2. python

[解決済み] Pythonの "Private"(実装)クラス

2022-03-06 14:48:32

質問

私は、2つの部分からなる小さなPythonモジュールをコーディングしています。

  • パブリックインターフェースを定義するいくつかの関数。
  • 上記の関数が使用する実装クラスで、モジュールの外では意味をなさないもの。

当初、この実装クラスを使用する関数の内部で定義して隠すことにしましたが、これでは可読性が損なわれるし、複数の関数が同じクラスを再利用する場合には使えません。

では、コメントやdocstringの他に、クラスを"private"や"internal"としてマークする仕組みはあるのでしょうか?アンダースコアの仕組みは知っていますが、私の理解では、それは変数、関数、メソッドの名前にしか適用されないようです。

どのように解決するのですか?

アンダースコアの接頭辞を1つだけ使用する。

class _Internal:
    ...

これは「内部」シンボルに対する公式の Python 規約です; "from module import *" はアンダースコアの接頭辞を持つオブジェクトを import しないようにします。

参照先 単一アンダースコア規則 .