在一些示例代码中,我看到使用了这种语法:
float1 = 7.0
float2 = 2.0
result = (int)(float1/float2)
Run Code Online (Sandbox Code Playgroud)
关键点似乎是强制结果为整数,但我找不到任何记录(int)正在使用的语法的地方,或者为什么它会更好int(float1/float2).调用int()本身应该返回零,但(0)(float1/float2)抛出一个TypeError并抱怨零不是可调用的.很明显,解释器正在尝试执行int()引用,但是我不清楚它为什么会在那里找到可调用的东西.
有人能指点我这个语法的一些文档吗?
小智 10
编写该代码的人过多地接触过比C更密切相关的语言而不是Python.在C,C++,Java,C#等中,(int)something是要something转换为的语法(int).在Python中,它只是一种奇怪的拼写方式int(something).int是内置函数,它转换something为int.
通常,(<expr>)其他表达式的Python表达式的<expr>计算结果与之相同<expr>.parantheses只能影响优先级,但在这种情况下它们不会.同样,<expr>(...)评估<expr>然后调用结果 - 注意<expr>可以再次是任何表达式,它不仅限于简单的函数名称.
(x)(y)是一样的x(y).(int)(y)因int(y)工作而有效.(0)(y)不是因为0(y)不起作用.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |