子文件

时间:2018-04-15 08:24:22

标签: python python-3.x python-2.7

我将我的代码拆分为单独的文件,但是子文件中的变量存在问题(我确信它很简单,但无法解决错误。

当我运行代码时,我得到一个" UnboundLocalError:局部变量' avglightlevel'在转让前引用"错误。

我认为变量对于子文件是本地的,我已经尝试在每个文件中使用全局变量,但仍然不能正常工作。

如何在子文件中使用变量来保持平均值的运行总数?

#main.py
import datacalc

datacalc.init(0)


#Read sensors & process the data
datacalc.complielightlevel(lightlevel)

# delay for 10 seconds and keep repeat 

======================================================
#datacalc.py
def init(avg):

      avglightlevel = 0 
      avgCO2level = 0
      avgtemperaturelevel = 0

#================================================   
def complielightlevel(lightlevel):
    if(lightlevel > 0):
          avglightlevel = avglightlevel + lightlevel

1 个答案:

答案 0 :(得分:0)

似乎需要访问avglightlevel模块datacalc。这样的事情可能有用:

首先,在datacalc.py

def init(avg):
    global avglightlevel # Declares that `avglightlevel` should be in the global scope.
    global avgCO2level
    global avgtemperaturelevel
    avglightlevel = 0 
    avgCO2level = 0
    avgtemperaturelevel = 0

然后,在main.py内:

def complielightlevel(lightlevel):
    if(lightlevel > 0):
        # We modify the `avglightlevel` in the `datacalc` module.
        datacalc.avglightlevel = datacalc.avglightlevel + lightlevel

希望这有帮助!