我最近遇到了一种我在学习 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
但我的问题是:
- 它怎么能做到这一点?
- 这两个点的实际含义是什么?
- 如何在更复杂的语句中使用它(如果可能)?
这可能会在未来为我节省很多代码行...:)
最佳答案
你所拥有的是一个没有尾随零的 float
文字,然后你可以访问它的 __truediv__
方法。它本身不是运算符;第一个点是浮点值的一部分,第二个是点运算符,用于访问对象的属性和方法。
您可以通过执行以下操作达到相同的点。
>>> f = 1.
>>> f
1.0
>>> f.__floordiv__
<method-wrapper '__floordiv__' of float object at 0x7f9fb4dc1a20>
另一个例子
>>> 1..__add__(2.)
3.0
这里我们把 1.0 加到 2.0 上,显然是 3.0。
关于python - 什么是 `1..__truediv__` ? Python 是否有 .. ("dot dot") 表示法语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43487811/