На самом деле это может быть даже быстрее, например:
x.real** 2+ x.imag** 2
Таким образом, дополнительная стоимость вызова функции, вероятно, уменьшится. Давайте посмотрим:
In []: n= 1e4
In []: x= randn(n, 1)+ 1j* rand(n, 1)
In []: %timeit x.real* x.real+ x.imag* x.imag
10000 loops, best of 3: 100 us per loop
In []: %timeit x.real** 2+ x.imag** 2
10000 loops, best of 3: 77.9 us per loop
И инкапсуляция вычисления в функции:
In []: def abs2(x):
..: return x.real** 2+ x.imag** 2
..:
In []: %timeit abs2(x)
10000 loops, best of 3: 80.1 us per loop
В любом случае (как уже указывали другие) этот вид микрооптимизации (во избежание вызова функции) не является действительно продуктивным способом написания кода на Python.