@dkdoter
play dota

Почему a+b работает быстрее чем a.__add__(b)?

>>> from timeit import timeit
>>> timeit('''
... a = 10
... b = 5
... c = a + b
... ''')
0.24442141791507765
>>> timeit('''
... a = 10
... b = 5
... c = a.__add__(b)
... ''')
0.5271954476593237
>>>
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@YuriM1983
Фрилансер - веб-программист на питоне
>>> import dis
>>> dis.dis('a = 10\nb = 5\nc = a + b')
>>> dis.dis('a = 10\nb = 5\nc = a.__add__(b)')

Увидите разницу. Если вкратце: оптимизация сложения integer.
А __add__ - это ещё надо найти такой аттрибут и его вызвать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
НЛ Континент Новосибирск
от 60 000 до 100 000 руб.
15 авг. 2018, в 07:40
120000 руб./в месяц
15 авг. 2018, в 07:34
98000 руб./в месяц
15 авг. 2018, в 07:30
100000 руб./в месяц