Bunu bir süredir merak ediyorum. Başlığın dediği gibi, hangisi daha hızlı, gerçek işlev mi yoksa sadece yarı güce mi yükseliyor?
GÜNCELLEME
Bu erken bir optimizasyon meselesi değildir. Bu sadece temel kodun gerçekten nasıl çalıştığı sorusudur. Python kodunun nasıl çalıştığı teorisi nedir?
Guido van Rossum'a bir e-posta gönderdim, çünkü bu yöntemlerdeki farklılıkları gerçekten bilmek istedim.
E-postam:
Python'da karekök yapmanın en az 3 yolu vardır: math.sqrt, '**' operatörü ve pow (x, .5). Sadece bunların her birinin uygulanmasındaki farklılıkları merak ediyorum. Verimlilik söz konusu olduğunda hangisi daha iyi?
Onun yanıtı:
pow ve ** eşdeğerdir; math.sqrt karmaşık sayılar için çalışmaz ve C sqrt () işlevine bağlantılar. Hangisinin daha hızlı olduğu hakkında hiçbir fikrim yok ...
math.sqrt
(olduğu gibi) daha iyi duruma rutindir ve açıkça niyet daha fazla ifade, her zaman tercih edilmelidir x**.5
. Ne yazdığınızı bilmek erken optimizasyon değildir ve daha hızlı ve daha fazla kod netliği sağlayan alternatifi seçer. Öyleyse, diğer alternatifleri neden seçeceğiniz konusunda eşit derecede tartışmanız gerekir.