Saya sudah lama bertanya-tanya tentang hal ini. Seperti judulnya, mana yang lebih cepat, fungsi sebenarnya atau hanya menaikkan setengah daya?
MEMPERBARUI
Ini bukan masalah optimasi prematur. Ini hanyalah pertanyaan tentang bagaimana sebenarnya kode yang mendasarinya bekerja. Apa teori tentang bagaimana kode Python bekerja?
Saya mengirim Guido van Rossum email sebab saya benar-benar ingin tahu perbedaan dalam metode ini.
Email saya:
Setidaknya ada 3 cara untuk melakukan root kuadrat dalam Python: math.sqrt, operator '**' dan pow (x, .5). Saya hanya ingin tahu perbedaan dalam implementasi masing-masing. Dalam hal efisiensi, mana yang lebih baik?
Jawabannya:
pow dan ** adalah setara; math.sqrt tidak berfungsi untuk bilangan kompleks, dan tautan ke fungsi C sqrt (). Yang mana yang lebih cepat, saya tidak tahu ...
math.sqrt
rutin lebih dioptimalkan (sebagaimana adanya) dan mengekspresikan maksud lebih jelas, itu harus selalu lebih disukai x**.5
. Ini bukan optimasi dini untuk mengetahui apa yang Anda tulis, dan memilih alternatif yang lebih cepat dan memberikan kejelasan kode yang lebih banyak. Jika demikian, Anda perlu berdebat dengan baik mengapa Anda memilih alternatif lain.