python function call with variable
1 2 3 4 5 6 7 8 9 | def test(): print 'test' def test2(): print 'test2' test = {'test':'blabla','test2':'blabla2'} for key, val in test.items(): key() # Here i want to call the function with the key name, how can i do so? |
您可以使用实际的函数对象本身作为键,而不是函数的名称。函数是Python中的第一类对象,因此直接使用它们比使用它们的名称更干净、更优雅。
1 2 3 4 | test = {test:'blabla', test2:'blabla2'} for key, val in test.items(): key() |
如果您想知道的是"当函数名在字符串中时如何调用函数",这里有一些好的答案-从字符串中调用模块的函数,函数名在python中
约翰有一个很好的解决办法。这是另一种方法,使用
1 2 3 4 5 6 7 8 9 | def test(): print 'test' def test2(): print 'test2' mydict = {'test':'blabla','test2':'blabla2'} for key, val in mydict.items(): eval(key+'()') |
注意,我更改了字典的名称以防止与
1 2 3 4 5 6 7 8 9 10 | def test(): print 'test' def test2(): print 'test2' assign_list=[test,test2] for i in assign_list: i() |