我最近遇到了一个我以前在学习 python 时从未见过的语法,在大多数教程中也从未见过, ..
表示法,它看起来像这样:
f = 1..__truediv__ # or 1..__div__ for python 2
print(f(8)) # prints 0.125
我认为它与(当然,除了更长)完全相同:
f = lambda x: (1).__truediv__(x)
print(f(8)) # prints 0.125 or 1//8
但我的问题是:
- 它怎么做到的?
- 这两个点实际上意味着什么?
- 如何在更复杂的语句中使用它(如果可能)?
这可能会在未来为我节省很多行代码……:)
原文由 Taku 发布,翻译遵循 CC BY-SA 4.0 许可协议
您拥有的是
float
没有尾随零的文字,然后您可以访问__truediv__
方法。它本身不是运营商;第一个点是浮点值的一部分,第二个是访问对象属性和方法的点运算符。您可以通过执行以下操作达到相同的点。
另一个例子
这里我们将 1.0 添加到 2.0,这显然会产生 3.0。