有人可以解釋爲什麼下面的x可以作爲一個函數float()嗎?基本上我不明白什麼意思?這是一個內部函數還是隱式對象?Python字符串浮動轉換
>>> x=type(0.0)
>>> x
<type 'float'>
>>> x('9.823')
9.823
有人可以解釋爲什麼下面的x可以作爲一個函數float()嗎?基本上我不明白什麼意思?這是一個內部函數還是隱式對象?Python字符串浮動轉換
>>> x=type(0.0)
>>> x
<type 'float'>
>>> x('9.823')
9.823
這和寫float('9.823')
完全一樣。事實上,你可以很容易地看到如下:
>>> type(0.0) is float
True
>>>
而且你可以以完全相同的方式使用它們:
>>> float('9.823')
9.823
>>> type(0.0)('9.823')
9.823
>>>
這只是調用了float
類型的構造。
所以
嗯,它是一個有構造函數的類型,就像一個類是一個具有構造函數的類型(使用相同的語法)。 –
它可以充當函數float,因爲您正在有效製作x = float
。
舉個例子,你也可以,比如做:
x = type(1) #int
print x(1.1111) # will print 1
你變x
設置爲類型float
。命令type()
返回方括號內的任何類型。在你的情況下,你提供了一個浮點型輸入命令,並設置返回浮點數到你的變量x
。
我想我的問題是運營商<>的含義? –
這就是打印時顯示的類型。通常,您不要在Python中使用<>括號。 – 2016-03-01 17:15:39
因爲這與'x = float'相同。 –
猜測它和'x = float'一樣,然後調用'x('0.823')'。但從來沒有那麼有趣,從來沒有想過在函數調用中使用類型對象:) – Torxed