4

新しいオブジェクトを構築するときにパラメーターを含むデフォルトの辞書が必要です。これは可能ですか、それを行うためのより良い方法はありますか?

defaultdict(myobj, param1)

次に myobj:

class myobj(object):

    def __init__(self, param1):
        self.param1 = param1
4

1 に答える 1

6

defaultdict任意の callable を受け取るため、パラメーターをとらず、必要なパラメーターでインスタンス化されたオブジェクトを返す新しい関数を作成できます。

d = defaultdict(lambda: myobj(param1))

もう 1 つのオプションは、functools.partial を使用することです。これは、1 つ (または複数) のパラメーターが事前定義された関数を作成します。

import functools
d = defaultdict(functools.partial(myobj, param1))
于 2013-08-05T20:11:39.877 に答える