Pull to refresh
167
0
Alexander Marshalov @Amper

User

Send message
Вы не правы, модель в питоне очень проста, не обязательно использовать все перечисленные изыски, большинство из них для особых ценителей-извращенцев.
Для полной картины не хватает еще и вещей вроде __dict__, __doc__, __ slots__ и т.д. (хоть это и не методы, но статья бы стала почти идеальной)).
Ну, и еще не хватает __prepare__.
Всем хорош, просто идеальный интерфейс и скорость работы, но я не нашел настройки, чтобы скрывать прочитанные статьи.
У меня работает ключ от второй версии.
Вы имеете ввиду такой вариант:

from time import time
from functools import reduce

lst = xrange(1,10000000)
r1, r2 = 0, 0

t1 = time()
r1 = reduce(lambda x, y: x + y, lst)
t1 = time() - t1

t2 = time()
for i in lst: 
	r2 = i + r2
t2 = time() - t2 

print(t1)
print(t2)

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

>qqq.py
1.83299994469
1.74499988556

>qqq.py
1.79699993134
1.79299998283

>qqq.py
1.75500011444
1.81399989128


Но в целом я согласен, код с reduce тяжелее читается.
Кроме того он несколько проигрывает по производительности
from time import time
from functools import reduce
from operator import add

lst = range(1,10000000)
r1, r2 = 0, 0

t1 = time()
r1 = reduce(add, lst)
t1 = time() - t1

t2 = time()
for i in lst: 
    r2 = add(i, r2)
t2 = time() - t2 

print(t1)
print(t2)

>>> 1.0490000248
>>> 2.14700007439
Так нечестно :), только пару дней назад взял PyCharm за полную стоимость =(
В силу специфики работы приходится писать комментарии исключительно на русском. В личных проектах использую английский.
Только что посмотрел — да, действительно убог. Очень обрезанный.
ваш телепатор сломался
Ок
ну-ну. ссылки на тот сор, я предполагаю, не появится. Если спор был похожий, то там шла речь именно о хвостовой рекурсии, а не о том, какой Питон плохой или хороший
Да, речь там шла о хвостовой рекурсии, но вас так эта тема задевает (неумение питоном TRE), что я сделал выводы о нелюбви к питону ) возможно, вывод неверный.
Не пытайтесь переубедить, у dmitriid претензии не к вашему примеру, а к python вообще. Он приверженец erlang. И приблизительно этот спор уже когда-то был на хабре в какой-то теме о python ) все повторяется )
Боже, помогите мне развидеть этот код.
Вот еще пример trampoline для рекурсии.
Это требует модификации самой функции, так что далеко не везде применимо. Проще тогда переписать саму функцию без использования рекурсии. Для TCO в python полно хаков в виде декораторов, не требущих модификации функций.
Это была игра слов )
А причем тут верстальщики, это же обычный хромиум со вкусом яндекса.

Information

Rating
Does not participate
Registered
Activity