我很好奇哪种形式更高效,风格是否正确等等.我觉得".0"的方法要快得多; 我不确定为什么"浮动"方法同样受到赞赏(如果是).
使用该7.0方法,该float(7)方法用于将整数或字符串类型转换为浮点数,因此它是一个不同的用途,例如:
a = 7
b = "7"
print float(a)
7.0
print float(b)
7.0
Run Code Online (Sandbox Code Playgroud)
使用float(7)增加了一些不必要的开销 - Python必须找到float函数globals()并调用它.使用7.0在编译时执行所有必要的转换而不是运行时.你可以使用Python字节码反汇编程序看到这一点.
>>> import dis
>>> def f(): return 7.0
...
>>> def g(): return float(7)
...
>>> dis.dis(f)
1 0 LOAD_CONST 1 (7.0)
3 RETURN_VALUE
>>> dis.dis(g)
1 0 LOAD_GLOBAL 0 (float)
3 LOAD_CONST 1 (7)
6 CALL_FUNCTION 1
9 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
以下在Python中都是等效的:
>>> 7. == 7.0 == float(7) == float("7")
True
Run Code Online (Sandbox Code Playgroud)
我会避免使用float(7)或float("7")当你对值进行硬编码时,因为Python解释器必须首先将值转换为整数或字符串,然后将其转换为浮点数.
为了避免这种开销,使用7.或7.0给Python一个浮点字面值.
当然,float()仍应该用于将其他数据类型转换为float.