我将我的代码拆分为单独的文件,但是子文件中的变量存在问题(我确信它很简单,但无法解决错误。
当我运行代码时,我得到一个" 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
答案 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
希望这有帮助!