Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取int()和float()函数的函数对象_Python_Function - Fatal编程技术网

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

Python 获取int()和float()函数的函数对象,python,function,Python,Function,我想用Python将一个函数传递给一个函数。我知道我可以通过将函数名作为参数来实现这一点,例如: blah(5, function) 但是,我想将int()函数和float()函数传递给这个函数。如果我只是把函数名放进去,那么它假定我指的是int和float类型,而不是用于将字符串转换为int和float的函数 是否有方法传递函数而不是类型?只传递int和float就可以了。您是对的,这实际上将传递类型对象而不是函数,但这并不重要。重要的是,传递的对象是可调用的,调用类型对象将实现您期望的功能

我想用Python将一个函数传递给一个函数。我知道我可以通过将函数名作为参数来实现这一点,例如:

blah(5, function)
但是,我想将
int()
函数和
float()
函数传递给这个函数。如果我只是把函数名放进去,那么它假定我指的是
int
float
类型,而不是用于将字符串转换为int和float的函数


是否有方法传递函数而不是类型?

只传递
int
float
就可以了。您是对的,这实际上将传递类型对象而不是函数,但这并不重要。重要的是,传递的对象是可调用的,调用类型对象将实现您期望的功能。

类型对象就是您想要的

>>> 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'>
>>> 
def转换器(值,转换器功能): ... 新值=转换器函数(值) ... 打印新值,键入(新值) ... >>>转换器('1',int) 1. >>>转换器('2.2',浮子) 2.2 >>>
为什么需要将int作为参数传递?@Trufa:只有两个例子:
defaultdict(int)
map(int,string\u list)
。还有很多。
sorted(['1','100','99',key=int)
。我没有正确地表达我的问题,我的问题是:为什么你需要将int作为一个函数传递,因为它总是可以调用为
int()
,因为它是内置的,而你需要传递的是类型,正如你在例子中所说的,我理解正确吗?@Trufa:对不起,我真的不明白你在问什么。