2016-03-01 104 views
1

有人可以解釋爲什麼下面的x可以作爲一個函數float()嗎?基本上我不明白什麼意思?這是一個內部函數還是隱式對象?Python字符串浮動轉換

>>> x=type(0.0) 
>>> x 
<type 'float'> 
>>> x('9.823') 
9.823 
+1

因爲這與'x = float'相同。 –

+1

猜測它和'x = float'一樣,然後調用'x('0.823')'。但從來沒有那麼有趣,從來沒有想過在函數調用中使用類型對象:) – Torxed

回答

1

這和寫float('9.823')完全一樣。事實上,你可以很容易地看到如下:

>>> type(0.0) is float 
True 
>>> 

而且你可以以完全相同的方式使用它們:

>>> float('9.823') 
9.823 
>>> type(0.0)('9.823') 
9.823 
>>> 

這只是調用了float類型的構造。

+0

所以是一個構造函數嗎? –

+0

嗯,它是一個有構造函數的類型,就像一個類是一個具有構造函數的類型(使用相同的語法)。 –

0

它可以充當函數float,因爲您正在有效製作x = float

舉個例子,你也可以,比如做:

x = type(1) #int 
print x(1.1111) # will print 1 
1

你變x設置爲類型float。命令type()返回方括號內的任何類型。在你的情況下,你提供了一個浮點型輸入命令,並設置返回浮點數到你的變量x

+1

我想我的問題是運營商<>的含義? –

+1

這就是打印時顯示的類型。通常,您不要在Python中使用<>括號。 – 2016-03-01 17:15:39