1

変数に割り当てられた関数があるとしましょうfunc。関数自体が含まれていますfunc(つまり、print func<function func at 0x103f25410>

私は簡単なクラスを持っています:

class Item():
    def __init__(self, data):
    # init code
        pass
    def func(self):
        pass
    def dunc(self):
        pass

__init__で受け取っfuncたとしましょう。dataとしてアクセスできますdata.func。私はそれをによって消費するように割り当てることができself.consume = data.funcます。

しかし、データ内の関数の辞書がある場合はどうなりますか?

{"func" : <function func at 0x103f25410>, "dunk" : <function dunk at 0x103f25410>}

とにかく私はのようなことをすることができますかself.key = data[key]?言い換えれば、辞書内のデータを割り当てますが、明示的に割り当てfuncたり、すべての割り当てを行う必要はありませんか?duncself.funcself.dunc

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、あなたは次のようなことをすることができます:

def __init__(self, data):
    for name, func in data.items():
        setattr(self, name, func)

self.func次に、またはself.dunc(または他にあったもの)を参照できますdata

于 2012-07-21T05:03:52.753 に答える