我想将函数传递给Python中的函数。我知道我可以通过将函数名称作为参数来实现,例如:
blah(5, function)
但是,我想将int()
函数和float()
函数传递给此函数。如果我只是将函数名称放入其中,则假定我指的是int
和float
类型,而不是将字符串转换为整数和浮点数的函数。
有没有办法传递函数而不是类型?
答案 0 :(得分:11)
只需传递int
和float
即可。你是对的,这实际上会传递类型对象而不是函数,但这并不重要。重要的是传递的对象是可调用的,调用类型对象将完成你期望的工作。
答案 1 :(得分:3)
类型对象是你想要的。
>>> def converter(value, converter_func):
... new_value = converter_func(value)
... print new_value, type(new_value)
...
>>> converter('1', int)
1 <type 'int'>
>>> converter('2.2', float)
2.2 <type 'float'>
>>>