私はPythonで、与えられたパラメータの正しいクラスをインスタンス化してこのインスタンスを返すので、Javaのファクトリと同じように動作するはずの関数を書きました。関数の内部クラスのPythonオブジェクトインスタンスを返す
関数内だけ一つのクラスとの最小の例は、これを次のようになります。私は、外部からこの関数を呼び出すときに、私は完璧にこのオブジェクトを使用することができ
def create_object(param):
class SpecialClass(ParentClass):
def func(self, param):
doSomething()
class_instance = SpecialClass(param)
return class_instance
。 Javaの背景から来て、私はこれがPythonの動的型付けと関係があると考えていますが、なぜこれが実際に動作するのかまだ分かりません。そのクラスが関数自体の中で知られているスコープではないのですか?
質問が不明です。なぜ*それは動作しませんか?動的タイピングとは何か関係がありますか? –
さて、動的タイピングとは何が関係していますか?また、@DanielRosemanは、彼はJavaで、クラス内のオブジェクトのスコープと関数内のオブジェクトがthr内にあることを意味します...しかし、Florianはここではそうではないようです。 –
私はまだ見ることができませんこれはスコープと何が関係していますか?関数からオブジェクトを返すと、たとえJavaであっても、そのオブジェクトを好きな場所に渡すことができます。 –