次の Python モジュールの抜粋を検討してください。
foo.py:
class Foo:
(...)
bar.py:
import foo
foo = foo.Foo()
モジュール オブジェクトであった変数 foo は、Foo オブジェクトで上書きされます。
オブジェクトに他の名前を使用できることはわかっています。たとえば、次のようになります。
foobar = foo.Foo()
しかし、それが唯一のインスタンスになるため、私のコードでは foo と呼ぶ方が意味的には理にかなっています。
(クラスを削除してモジュールのみを使用することでこれを回避しようとしましたが、モジュールのみを使用すると「堅牢性」の問題があったため、クラスの使用に戻りました。)
これは一種の哲学的な質問ですが、この潜在的なオブジェクト/モジュール名の競合を処理する「正しい」方法は何ですか?