Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> generator expressions и list comprehensions, разница в поведении (баг реализации?) 
:(
    Опции темы
Void
Дата 10.2.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 10
Всего: 173



Натолкнулся на весьма не очевидное поведение. Вот сведённый к минимуму пример:
Код
# так всё работает
class A:
     B = 1
     C = sum([B for x in range(10)])

Код

class A:
     B = 1
     # NameError: global name 'B' is not defined
     C = sum(B for x in range(10))

Я не нашёл никаких упоминаний о том, что области видимости в левой части list comprehensions и generator expressions определяются по-разному. Это действительно баг интепретатора, или я что-то упускаю? Python 2.5.1.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
setq
Дата 12.2.2008, 11:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Похоже на баг) А может это то, чем пришлось заплатить за "невидимость" переменной x вне generator expression. Довольно странно.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0914 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.