2012-04-09 56 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