I recently came across a syntax I never seen before when I learned python nor in most tutorials, the ..
notation, it looks something like this:
f = 1..__truediv__ # or 1..__div__ for python 2
print(f(8)) # prints 0.125
I figured it was exactly the same as (except it's longer, of course):
f = lambda x: (1).__truediv__(x)
print(f(8)) # prints 0.125 or 1//8
But my questions are:
This will probably save me many lines of code in the future...:)
What you have is a float
literal without the trailing zero, which you then access the __truediv__
method of. It's not an operator in itself; the first dot is part of the float value, and the second is the dot operator to access the objects properties and methods.
You can reach the same point by doing the following.
>>> f = 1.
>>> f
1.0
>>> f.__floordiv__
<method-wrapper '__floordiv__' of float object at 0x7f9fb4dc1a20>
Another example
>>> 1..__add__(2.)
3.0
Here we add 1.0 to 2.0, which obviously yields 3.0.