我最近遇到了一种我在学习 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__方法。它本身不是运算符;第一个点是浮点值的一部分,第二个是访问对象属性和方法的点运算符。
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。