新しいオブジェクトを構築するときにパラメーターを含むデフォルトの辞書が必要です。これは可能ですか、それを行うためのより良い方法はありますか?
defaultdict(myobj, param1)
次に myobj:
class myobj(object):
def __init__(self, param1):
self.param1 = param1
新しいオブジェクトを構築するときにパラメーターを含むデフォルトの辞書が必要です。これは可能ですか、それを行うためのより良い方法はありますか?
defaultdict(myobj, param1)
次に myobj:
class myobj(object):
def __init__(self, param1):
self.param1 = param1
defaultdict
任意の callable を受け取るため、パラメーターをとらず、必要なパラメーターでインスタンス化されたオブジェクトを返す新しい関数を作成できます。
d = defaultdict(lambda: myobj(param1))
もう 1 つのオプションは、functools.partial を使用することです。これは、1 つ (または複数) のパラメーターが事前定義された関数を作成します。
import functools
d = defaultdict(functools.partial(myobj, param1))