私が持っているものは次のとおりです。
•ネストされたクラスを持つファクトリ関数(クラスを直接インスタンス化することがより困難になるように)
• クラス内には、ファクトリ関数を呼び出してインスタンスの更新バージョンを取得するupdateメソッドがあります。
それは次のようなものです:
def factory(someStr):
#in my actual code I retrieve an updated value
#for someStr from the internetz
#I also have some other parameters, hence
#the someInt parameter
class NestedClass(object):
def __init__(self, someStr, someInt):
#... intialization code
#someStr becomes a property here
#(I omited that code)
def update(self):
return factory(self.someStr)
return NestedClass(someStr, int(someStr))
これは私が最初に思いついたもので、デザインが気に入っています (頻繁に更新する場合、主にその構文は非常に短いです)。マイナス面として、私は更新されたオブジェクトをたくさん作成します。
残念ながら、それは私が予想していたエラーを私に与えます(ネストされたクラスの名前空間のため、「dict not callable」)。
このデザインを維持して関数を呼び出す方法はありますか?