Я це цікавився деякий час. Як говориться в заголовку, яка швидша, фактична функція або просто підвищення до половини потужності?
ОНОВЛЕННЯ
Це не питання передчасної оптимізації. Це просто питання про те, як насправді працює базовий код. Яка теорія того, як працює код Python?
Я надіслав Гідо ван Россуму електронний лист, тому що мені дуже хотілося знати відмінності в цих методах.
Мій електронний лист:
Існує щонайменше 3 способи зробити квадратний корінь у Python: math.sqrt, оператор '**' та pow (x, .5). Мені просто цікаво щодо відмінностей у здійсненні кожного з них. Що стосується ефективності, яка краща?
Його відповідь:
pow і ** еквівалентні; math.sqrt не працює для складних чисел і посилається на функцію C sqrt (). Щодо того, хто швидший, я поняття не маю ...
math.sqrt
є більш оптимізованим рутинним (як є) і виражає наміри чіткіше, його завжди слід віддавати перевагу x**.5
. Це не передчасна оптимізація, щоб знати, що ви пишете, і обрали альтернативу, яка є швидшою та забезпечує більшу чіткість коду. Якщо це так, вам потрібно однаково добре аргументувати, чому ви обрали б інші варіанти.