获取int()和float()函数的对象
我想在Python中把一个函数传给另一个函数。我知道可以简单地把函数名作为参数传进去,比如:
blah(5, function)
不过,我想把 int()
函数和 float()
函数传给这个函数。如果我只是把函数名放进去,它会认为我是在指 int
和 float
这两种类型,而不是用来把字符串转换成整数和浮点数的函数。
有没有办法传递函数本身,而不是类型呢?
2 个回答
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'>
>>>
11
传递 int
和 float
是没问题的。你说得对,这实际上是传递类型对象,而不是函数,但这并不重要。重要的是,传递的对象是可以调用的,调用这些类型对象会得到你想要的结果。