私がやろうとしているのは、クラスを使用してモジュールを作成することです。そして、そのクラスのインターフェースである関数。この関数のオンザフライの変数名は、そのクラスのインスタンスを指しています。この関数とクラス自体は別のモジュールにあり、それらの使用法は別のPythonファイルにある必要があります。
私のコードを見ていると、私がやろうとしていることを理解するのがはるかに簡単だと思います。
これはfirst.py
:
class FirstClass:
def setID(self, _id):
self.id = _id
def func(self):
pass
# An 'interface' for FirstClass
def fst(ID):
globals()['%s' % ID] = FirstClass(ID)
return globals()['%s' % ID]
さて、私がすぐに呼び出している場合fst('some_text')
、first.py
結果は私が夢見ていたものとほぼ同じです。後で、私が書くときはいつでも、のインスタンスを指しているのでsome_text.func()
、それはを呼び出します。func()
some_text
FirstClass
しかし、second.py
が次のような場合:
from first import fst
fst('sample_name')
sample_name.func()
次に、Pythonからの答えは次のようになります。
NameError: name 'sample_name' is not defined.
どちらがやや合理的です..だから私の質問は:これを行うための「よりきれいな」方法または完全に異なる方法がありますか?または、これを行うためにコード内の小さなものを変更する必要がありますか?
ありがとうございました!