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