Переменная область в модулях - PullRequest
0 голосов
/ 19 апреля 2019

Короче говоря: почему эта программа выводит «0» вместо «5» и как я могу сделать так, чтобы она выводила «5»: main.py:

from mod import *
setvar(5)
printvar()

mod.py:

var = 0
def setvar(x):
    var = x
def printvar():
    print("var =", var)

1 Ответ

5 голосов
/ 19 апреля 2019

Ваш текущий код в методе setvar просто создает новую локальную переменную с именем var, присвоенную значению x.

Вы модифицируете глобальную переменную, вам нужно объявить ее как таковую.

var = 0
def setvar(x):
    global var
    var = x
def printvar():
    print("var =", var)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...