首页 > 解决方案 > 模块中的变量范围

问题描述

长话短说:为什么这个程序输出“0”而不是“5”,我怎样才能让它输出“5”:main.py:

from mod import *
setvar(5)
printvar()

模组.py:

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

标签: pythonvariablesmodule

解决方案


该方法中的当前代码setvar仅创建一个名为的新局部变量,var并分配给x.

你正在修改一个全局变量,你需要这样声明它。

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

推荐阅读