Форум сайта python.su
0
Почему подобный код работает в момент объявления:
#!/usr/bin/env python
(open('file.txt','a').write(x) for x in xrange(100))
# Или например:
(x for x in xrange(1000000))
#!/usr/bin/env python
open('file.txt','a').write(x) for x in xrange(100)
x for x in xrange(1000000)
Офлайн
0
Не очень вас понял, если используете квадратные скобки то получаете список, если круглые, то генератор.
Если не используете скобки, получаете ошибку.
Какие именно вычисления производятся на месте?
Офлайн
0
Zubchickтолько что проверил (KUbuntu 9.10, Python-2.6.4) действительно не работает.
Какие именно вычисления производятся на месте?
(open('file.txt','a').write(str(x)+'\n') for x in xrange(100))[open('file.txt','a').write(str(x)+'\n') for x in xrange(100)]Офлайн
0
у меня одинаково. Версии питонов совпадают.
Отредактировано (Янв. 22, 2010 19:18:14)
Офлайн
14
Кажется, глюки. Может, недосыпание?
Офлайн
0
ZubchickЗапущенное из файла, именно так в одну строчку.
у меня одинаково. Версии питонов совпадают.
Андрей СветловВозможно что и так. Но блин пол-часа экспериментировал - генераторное выражение направленное в xrange(100000000) стабильно вызывало мэмори эррор…
Кажется, глюки
Офлайн