2012-04-09 35 views
0

我甚至不知道这是否可能。如何绑定内置函数的python?

我想要做的事,如:

>>> foo = float 
>>> x = foo('2') 
>>> x 
2 

但是当我尝试它,我得到FOO一类对象:

>>> foo = float 
>>> foo 
<type 'int'> 

我要救状物体的结构,即有正确的函数在转换要从文件读取的值时调用。

在此先感谢您的帮助。

+0

这很奇怪。我只是输入并得到了预期的结果。 (请注意,在第一个例子中,'x'应该是'2.0',而不是'2'。) – Taymon 2012-04-09 02:11:50

+3

几乎可以肯定这是因为float已经被反弹到了int。 – DSM 2012-04-09 02:14:39

+0

@Taymon谢谢你,我不知道我在做什么,你是完全正确的。 – pablete 2012-04-09 02:16:22

回答

1

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

如果您没有得到预期的结果,请检查并确保您没有不小心将标识符重新映射到其他值。

-1

你可以将它们绑定。但是这不是一个明智的做法,因为用默认行为覆盖默认行为并使用默认行为的其他功能会意外中断。 所以不要那样做!

>>> foo = float 
>>> bar = int 
>>> foo('2') 
2.0 
>>> bar('2') 
2 
>>> type(foo) 
<type 'type'> 
>>> type(bar) 
<type 'type'> 
>>> 
+2

你应该更清楚些什么是不可取的......做'foo = int'是好的(我认为...我确定这是在'optparse,argparse,ConfigParser'中完成的......) “类型”作为参数传递给各种函数。但是,执行'int = float'肯定是一个坏主意。 – mgilson 2012-04-09 02:19:45

+0

-1依靠'float'的默认行为? OP不改变其行为。而'foo'没有默认行为... – 2012-04-09 02:39:29

+0

John Machin - 是的,我明白了。对不起,我很困惑! – 2012-04-09 03:25:55