获取int()和float()函数的对象

5 投票
2 回答
1847 浏览
提问于 2025-04-16 20:04

我想在Python中把一个函数传给另一个函数。我知道可以简单地把函数名作为参数传进去,比如:

blah(5, function)

不过,我想把 int() 函数和 float() 函数传给这个函数。如果我只是把函数名放进去,它会认为我是在指 intfloat 这两种类型,而不是用来把字符串转换成整数和浮点数的函数。

有没有办法传递函数本身,而不是类型呢?

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

传递 intfloat 是没问题的。你说得对,这实际上是传递类型对象,而不是函数,但这并不重要。重要的是,传递的对象是可以调用的,调用这些类型对象会得到你想要的结果。

撰写回答