Python字符串到浮点的转换

Python字符串到浮点的转换,python,function,object,types,casting,Python,Function,Object,Types,Casting,有人能解释一下为什么下面的x可以充当float()函数吗?基本上我不明白什么意思?这是内部函数还是隐式对象 >>> x=type(0.0) >>> x <type 'float'> >>> x('9.823') 9.823 >x=type(0.0) >>>x >>>x('9.823') 9.823 这与写float('9.823')完全相同。事实上,你可以很容易地看到如下: >>> type(0.0) is f

有人能解释一下为什么下面的x可以充当float()函数吗?基本上我不明白什么意思?这是内部函数还是隐式对象

>>> x=type(0.0)
>>> x
<type 'float'>
>>> x('9.823')
9.823
>x=type(0.0)
>>>x
>>>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()
返回括号内任何内容的类型。在您的例子中,您为type命令提供了一个float和将float返回变量
x

的设置,因为这与执行
x=float
相同。猜测这与执行
x=float
相同,然后调用
x('0.823')
。但是从来没有不那么有趣,从来没有想过在函数调用中使用类型对象:)构造函数也是这样吗?好吧,它是一个有构造函数的类型,就像类是一个有构造函数的类型(具有相同的语法)。我想我的问题是操作符的意思是什么?这就是打印类型时的显示方式。通常在Python中不使用括号。