如何在processing.py中的模块之间共享全局变量?

时间:2018-04-29 17:08:51

标签: python processing

我很清楚python中的大多数方法,但似乎没有什么工作在processing.py。

最初,我刚试过这个:

#####file: main.pyde
def setup():
  global thing
  thing = loadShape("param.svg")
  #bla-bla-bla

def draw():
  #bla-bla-bla

#####file: control.py
from main import thing
#bla-bla-bla

会很完美。但问题是,显然,您无法将主.pyde文件作为模块导入:它会一直返回“没有名为main的模块”。

接下来,我决定尝试引入一个单独的全球模块:

#####file: allglobal.py
thing = loadShape("param.svg")

#####file: control.py
from main import thing
#bla-bla-bla

例如,如果我将事物宣称为“你好世界”,这将会奏效。但似乎所有处理方法,包括loadShape,只能在main中的setup()方法内部或之后使用 - 否则它们会返回NullPointerException。

所以,我决定将allglobal.py中的全局变量包装在一个方法中,并从setup()内部调用它:

#####file: main.pyde
from control import allglobals
def setup():
  allglobals()
  #bla-bla-bla

def draw():
  #bla-bla-bla

#####file: allglobal.py
def allglobals():
  global thing
  thing = loadShape("param.svg")

#####file: control.py
from allglobals import thing
#bla-bla-bla

但是现在控件无法看到变量“thing”:它保持未定义,或者其他什么。

我做错了什么?有没有办法在processing.py中获得我需要做的事情?

0 个答案:

没有答案