Мне было интересно это в течение некоторого времени. Как следует из названия, что быстрее, фактическая функция или просто повышение до половины мощности?
ОБНОВИТЬ
Это не вопрос преждевременной оптимизации. Это просто вопрос того, как на самом деле работает базовый код. Какова теория того, как работает код Python?
Я послал Гвидо ван Россуму электронное письмо, потому что я действительно хотел знать различия в этих методах.
Моя электронная почта:
Существует как минимум 3 способа сделать квадратный корень в Python: math.sqrt, оператор '**' и pow (x, .5). Мне просто любопытно относительно различий в реализации каждого из них. Что касается эффективности, что лучше?
Его ответ:
pow и ** эквивалентны; math.sqrt не работает для комплексных чисел и ссылается на функцию C sqrt (). Что касается того, который быстрее, я понятия не имею ...
math.sqrtэто более оптимизированная процедура (как она есть) и она выражает намерение более четко, ее всегда следует отдавать предпочтение x**.5. Это не преждевременная оптимизация, чтобы знать, что вы пишете, и выбрал альтернативу, которая быстрее и обеспечивает большую ясность кода. Если это так, вам нужно одинаково хорошо спорить, почему вы бы выбрали другие альтернативы.