Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > generator expressions и list comprehensions


Автор: Void 10.2.2008, 17:55
Натолкнулся на весьма не очевидное поведение. Вот сведённый к минимуму пример:
Код
# так всё работает
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.

Автор: setq 12.2.2008, 11:54
Похоже на баг) А может это то, чем пришлось заплатить за "невидимость" переменной x вне generator expression. Довольно странно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)