私はPythonには新しく、値を関数として持つ辞書を作成しようとしていました。ここに私のコード辞書キーの値のペアでパラメータを持つ関数を渡す方法
import os
class Foo():
def print1(self,n):
print 5
def print2(self,n):
print 6
def foo(self):
bar = {'a': self.print1, 'b': self.print2}
bar['b'](5)
bar['a'](3)
bar[os.environ['FOO']]()
f = Foo()
f.foo()
Traceback (most recent call last):
File "test_dict.py", line 17, in <module>
f.foo()
File "test_dict.py", line 13, in foo
bar[b]()
python test_dict.py
6
5
Traceback (most recent call last):
File "test_dict.py", line 19, in <module>
f.foo()
File "test_dict.py", line 15, in foo
bar[os.environ['FOO']]()
TypeError: print2() takes exactly 2 arguments (1 given)
あなたの関数は何も返していません。したがって、 'bar [b]'は 'None'です。したがって、 'NoneType not callable'というエラーが発生しました。 – SvbZ3r0
呼び出し可能を辞書の値として入れることはできません。しかし、この場合は、関数*の出力を辞書に入れます。 – jonrsharpe
'' 'os.environ ['FOO']' ''は何を評価するのですか? – wwii