Как сохранить состояние в функции? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Как сохранить состояние в функции? [дубликат]

Сообщение Anonymous »

При использовании класса я могу сохранить состояние с помощью свойства:

Код: Выделить всё

class Hello:

def __init__(self):
self.hello = 1

def add_one(self):
if self.hello < 3:
self.hello += 1
else:
self.hello = 1

h = Hello()
for _ in range(5):
h.add_one()
print(h.hello)

# output
2
3
1
2
3
Между вызовами h.add_one() состояние сохраняется в h.hello.

Существует ли в функциях эквивалентный механизм? Что-то вроде

Код: Выделить всё

def add_one():
a_special_kind_of_variable_which_is_not_reinitialized hello
if hello_is_not_initialized:
hello = 1
if hello < 3:
hello += 1
else:
hello = 1
return hello

for _ in range(5):
print(add_one())

# same output as above
  • Использование глобальной переменной было бы решением, но я бы хотел этого избежать.
  • Передача вернуть возвращаемое значение в функцию, чтобы принудительно сохранить состояние, — это еще один вариант, но я надеюсь на способ сохранить состояние внутри функции без внешних зависимостей.


Подробнее здесь: https://stackoverflow.com/questions/579 ... a-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»