私がやろうとしていることは、例で説明する方が簡単かもしれません。次のコードを考えてみます。このファイルを使用して、ファイルmy_custom_module.pyでPython 3を使ってグローバル変数を初期化するimport
def oop_type_a():
__init__(self):
# class definitions, etc...
def oop_type_b():
__init__(self):
# class definitions, etc...
def define_a_bunch_of_oop_variables():
global oop1
global oop2
oop1 = oop_type_a()
oop2 = oop_type_b()
を、私はこれらのコマンドを実行することができます
>>>import my_custom_module
>>>my_custom_module.define_a_bunch_of_oop_variables()
>>>from my_custom_module import *
>>>oop1
<my_custom_module.oop_type_a object at 0x000000000615F470>
>>>oop2
<my_custom_module.oop_type_a object at 0x000000000615F5C0>
せずにこれと同じ機能を取得する方法はありますfrom my_custom_module import *
?これを達成するためのpythonicの方法は何ですか?
私は、このモジュールを使用するたびに初期化する必要があるいくつかのオブジェクトを持っており、これを行うことは面倒です:
>>>import my_custom_module
>>>oop1 = my_custom_module.oop_type_a()
>>>oop2 = my_custom_module.oop_type_b()
をモジュールが独自の名前空間外の名前を作成してもらうためにPython的ではありません。 – BrenBarn
それは公正です。このモジュールを使用するたびにコピー&ペーストする 'oop1 = my_custom_module.oop_type_a()'コマンドのテキストファイルを単純に作成するためのPythonの方法ですか? –
実際には、このようなグローバル変数を定義してモジュールの外部で使用する一般的なプログラミング方法ではありません。問題の根本的な原因は、コードとロジックの構成方法です。 –