如何绑定python内置函数?

如何绑定python内置函数?,python,function,built-in,Python,Function,Built In,我甚至不知道这是否可能 我想做一些类似的事情: >>> foo = float >>> x = foo('2') >>> x 2 但是当我尝试它时,我在foo中得到了一个类型对象: >>> foo = float >>> foo <type 'int'> >foo=float >>>福 我想保存一个类似于结构的对象,该对象在转换要从文件读取的值时保存要调用的正确函数 提前感谢您的帮助。这当

我甚至不知道这是否可能

我想做一些类似的事情:

>>> foo = float
>>> x = foo('2')
>>> x
2
但是当我尝试它时,我在foo中得到了一个类型对象:

>>> foo = float
>>> foo
<type 'int'>
>foo=float
>>>福
我想保存一个类似于结构的对象,该对象在转换要从文件读取的值时保存要调用的正确函数


提前感谢您的帮助。

这当然是可能的;内置标识符与任何其他标识符没有区别,并且没有理由不能将自己的标识符绑定到相同的对象


如果没有得到预期的结果,请检查并确保没有意外地将标识符反弹到其他值。

您可以只绑定它们。但是,这不是一个明智的做法,因为您使用依赖于默认行为的其他内容和函数重写默认行为会意外中断所以不要这样做

>>> foo = float
>>> bar = int
>>> foo('2')
2.0
>>> bar('2')
2
>>> type(foo)
<type 'type'>
>>> type(bar)
<type 'type'>
>>> 
>foo=float
>>>bar=int
>>>foo('2')
2
>>>酒吧('2')
2.
>>>类型(foo)
>>>类型(条形)
>>> 

这很奇怪。我只是打了一下,得到了预期的结果。(请注意,在您的第一个示例中,
x
应该是
2.0
,而不是
2
)几乎可以肯定这是因为float已经反弹到int。@Taymon谢谢,我不知道我在做什么,您完全正确。@DSM是的,反弹到int对象(不是int类型)。@SenthilKumaran:不,是int类型。如果float被反弹到某个int对象,那么x=foo('2')将引发
TypeError:“int”对象不可调用
。您应该更清楚什么是不可取的。。。执行
foo=int
很好(我想……我确信这是在
optparse、argparse、ConfigParser
中完成的),其中“type”作为参数传递给各种函数。但是,执行
int=float
绝对是个坏主意。-1依赖
float
的默认行为?OP没有改变它的行为。而且
foo
没有默认行为……约翰·梅钦——是的,我明白了。对不起,我弄糊涂了!