¿Existe realmente un operador @ en Python para calcular el producto de puntos?

¿Es correcta esta respuesta: https://stackoverflow.com/a/39662710/1175080 ?

Citando esa respuesta.

En Python 3.5, hay un nuevo operador para el producto de puntos, por lo que puede escribir a = A @ B en lugar de a = numpy.dot (A, B)

No parece funcionar para mí.

$ python3 Python 3.6.1 (default, Apr 4 2017, 09:40:21) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> a @ b Traceback (most recent call last): File "", line 1, in  TypeError: unsupported operand type(s) for @: 'list' and 'list' >>> 

Pero la respuesta vinculada ha recibido 6 votos a favor, así que debo estar perdiendo algo. ¿Puede proporcionar un ejemplo completo que muestre cómo usar el operador @ para calcular un producto de puntos?

Vea las novedades en Python 3.5, sección matrix mult (PEP 465) :

PEP 465 agrega el operador @ infijo para la multiplicación de matrices. Actualmente, ningún tipo de Python integrado implementa el nuevo operador , sin embargo, puede implementarse definiendo __matmul__() , __rmatmul__() y __imatmul__() para la multiplicación de matrices regular, reflejada e in situ. La semántica de estos métodos es similar a la de los métodos que definen otros operadores aritméticos de infijo.

Entonces, tendrías que implementar esos métodos tú mismo.

O, use numpy>=1.10 que ya tiene soporte para el nuevo operador:

 >>> import numpy >>> x = numpy.ones(3) >>> m = numpy.eye(3) >>> x @ m array([ 1., 1., 1.])