How the Arduino Leonardo USB communication works?

Well, I know that Leonardo can be a true keyboard or mouse, so it can enable USB functionalities. So, how do I communicate with the python, for example, via USB without using the serial?
How does the Leonardo creates a Serial abstraction on computer, it it don't use FTDI anymore? Is it what the driver is doing? Thanks.

So, how do I communicate with the python, for example, via USB without using the serial?

You have to decide how you want to communicate with the Leonardo. It can emulate a serial device (default), any HID (keyboard, mouse, etc.) or any other kind of USB device you like it to be. Usually the problem is more your PC. If you're running Linux, just use the libusb and you have an almost direct connection to your Leonardo. If you run Windows, you might have to write a driver (or install the windows port of libusb) first.

Why don't you want to use the serial interface? It's there by default and it's easily usable from within Python. Why complicate things?

How does the Leonardo creates a Serial abstraction on computer, it it don't use FTDI anymore?

You can have a look at the code yourself: hardware/arduino/core/arduino/CDC.cpp