2016-12-25 12 views
0

私がやろうとしていることは、例で説明する方が簡単かもしれません。次のコードを考えてみます。このファイルを使用して、ファイル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() 
+0

をモジュールが独自の名前空間外の名前を作成してもらうためにPython的ではありません。 – BrenBarn

+0

それは公正です。このモジュールを使用するたびにコピー&ペーストする 'oop1 = my_custom_module.oop_type_a()'コマンドのテキストファイルを単純に作成するためのPythonの方法ですか? –

+0

実際には、このようなグローバル変数を定義してモジュールの外部で使用する一般的なプログラミング方法ではありません。問題の根本的な原因は、コードとロジックの構成方法です。 –

答えて

0

モジュールは、変数やメソッドを分離するために使用されます。あなたが多分主張する場合は、パッケージを作成しようとして__init__.py

でグローバル変数を宣言することができ、これを参照してください:Can I use __init__.py to define global variables?

+0

私はまだこのソリューションで 'my_custom_module.oop1'を呼び出さなければならないようです。 –

関連する問題