правильный способ изменить переменную основного prgm в aux prgm в python - PullRequest
0 голосов
/ 22 марта 2020

Я не могу найти правильный способ сделать это. У меня есть основной модуль с переменной x и вспомогательный модуль, который должен иметь возможность обновлять x.

Следующее не работает:

#main.py
import aux
x=0
aux.update()

#aux.py
import main
def update():
   main.x += 1

Вроде бы возможно с third модулем, удерживающим x:

#main.py
import aux,third
third.x = 0
aux.update()

#aux.py
import third
def update():
   third.x += 1

#third.py
x = 0

Нужен ли этот third модуль? Есть ли "лучший способ"?

1 Ответ

0 голосов
/ 22 марта 2020

Возможно, вы могли бы написать что-то вроде class, создать его экземпляр и передать его в update() функцию:

#main.py
import aux

class Foo:
    def __init__(self, x):
    self.x = x

third = Foo(0)
print(third.x)
aux.update(third)
print(third.x)


#aux.py
def update(instance):
   instance.x += 1

Вывод:

0
1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...