Найти - Пользователи
Полная версия: Помогите понять код
Начало » Центр помощи » Помогите понять код
1 2
Александр Кошелев
Если нужно в блоке изменить глобальную переменную, нужно использовать инструкцию global.
Ага, и засорять глобальное пространство имен;)
hellt
ZAN
спасибо!
Dimitor
На мой взгляд, в данном случае просто напрашивается применение генераторов:
def counter(start):
    curr = start
    while 1:
        curr += 1
        yield curr
f1 = counter(4)
print f1                    #<generator object at 0x00BF96C0>
print f1.next()          #5
print f1.next()          #6
И обертка, если не нравится использование .next()
def counter2(start):
    return counter(start).next
f2 = counter2(3)
print f2                    #<method-wrapper 'next' of generator object at 0x00BF9850>
print f2()                 #4
print f2()                 #5
Ибо использование глобальной переменной может привести к неожиданным эффектам при использовании двух и более объектов counter()…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB