Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Каковы основные причины относительно низкого быстродействия программ на Python?

What are the main reasons for the relatively slow performance of Python programs?

ПрограммированиеПрограммы+2
Nick Nick
  ·   · 698
Python (programming language) is interesting now.  · 7 дек 2020

Думаю, что фундаментальная причина «медлительности» Python – объектно-ориентированная модель самого языка, что часто излагают так: «всё в Python — классы и объекты».

Если, к примеру, вычислять факториал числа с использованием переменной, замыкания (closure), класса, то время его вычисления будет приблизительно одно и тоже:

import time

class Fun:
    def __init__(self, a):
        self.a = a

def fun1(a):

    def fun2(f):
        nonlocal a
        a *= f
        return a
    return fun2

f = 50_000  # вычисляется факториал этого числа

start = time.time()
m0 = Fun(1)
for i in range(2, f+1):
    m0.a *= i
sec = time.time() - start
print(f"{'При использовании экземпляра класса:':.<40}{sec} c")


start = time.time()
m1 = fun1(1)
for i in range(2, f+1):
    m1(i)
sec = time.time() - start
print(f"{'При использовании замыкания:':.<40}{sec} c")

start = time.time()
rez = 1
for i in range(2, f+1):
    rez *= i
sec = time.time() - start
print(f"{'При использовании переменной:':.<40}{sec} c")
'''
При использовании экземпляра класса:....1.0973212718963623 c
При использовании замыкания:............1.1133134365081787 c
При использовании переменной:...........1.0213711261749268 c
'''
1 эксперт не согласен
Cave Marmus
возражает
23 дек 2020

Объектная ориентированность никак не влияет на быстродействие языка.

C++ тоже объектно ориентированный, но достаточно быстрый.