私は辞書からいくつかの範囲をminipulatesするPython辞書に関数を格納しようとしていますが、関数にはself
を渡す方法はありません。例:Python辞書内の関数に自己を渡す方法
d = {"r": range(10), "r2": range(10, 20), "f": lambda self: self["r"].extend(self["r2"])}
は、私はそれはのように拡張されたリストを返すことを期待:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
が、私はd["f"]()
を呼び出すときに私はd["f"](d)
を行う場合でも、私は何を取得TypeError: <lambda>() takes exactly 1 argument (0 given).
を入手します!
>>> d["f"](d)
>>>
でも可能ですか?そしてどうやって ? ありがとうございます。
UPDATE 1
私は辞書内のいくつかの値をフィルタリングするために辞書に自己を通過したい、と私の場合は、Googleのアプリエンジンでそれを使用することですので、クラス分けはオプションではありませんhere's my question about that
はそうあなたの第2の使用は、
ありがとうございますが、それを動作させるために、辞書全体を関数に渡す必要がありますか? –
@ user5258689クラスを使用して調べることができます。必要なものをはるかに単純な(そしてPythonの)方法で達成することができます。 –
それは良い考えです、私の編集をご覧ください。 –