#python #import #global-variables
Вопрос:
Эй, ребята, вот проблема, с которой я столкнулся в своем проекте. Здесь я использую простой пример, чтобы объяснить это. Когда я пытаюсь запустить main.py, Я хочу использовать переменную в этом модуле не во вспомогательном, но результат вывода всегда равен 2, даже когда я удаляю глобальную переменную «a». Есть ли какой-нибудь способ без ввода аргумента функции? Надеюсь, кто-нибудь сможет помочь 🙁
helper.py
a = 2
def test():
print(a)
main.py
from helper import *
del globals()["a"]
if __init__ == "__main__":
a = 10
test()
Ответ №1:
Вы можете просто изменить атрибут:
main.py
import helper
if __name__ == "__main__":
helper.a = 10
helper.test()
Выход:
10
Редактировать:
Вы могли бы попробовать:
helper.py
a = [2]
def test():
print(a[0])
main.py
from helper import *
if __name__ == "__main__":
a.clear()
a.append(10)
test()
Выход:
10
Комментарии:
1. Есть ли способ обойтись без передачи аргумента
2. @YanJimmy отредактировал мой ответ, проверьте его, помните, что делать, если это поможет
3. Спасибо за ваш ответ! Еще один вопрос. Поскольку в моем проекте есть много функций и переменных, которые я хочу использовать, вот почему я пишу из вспомогательного импорта *. Мой вопрос в том, что если я хочу изменить только часть глобальной переменной, могу ли я все еще использовать вспомогательный импорт * ?
4. @YanJimmy Вы можете делать и то, и другое, вы можете делать
import helper
и тоfrom helper import *
, и другое, не забудьте принять и проголосовать, если это поможет 😛5. @YanJimmy Мои решения-единственно возможные пути