老季是Python新手,下面我们记录一下如何跨文件定义一个全局变量。
- cnc.py 主程序文件
- func.py 功能函数文件
- cmcc.py
我们需要在main.py、cmss.py里定义了一个变量,lockfile 当然这里文件里的各个值是不同的。我们如何在func.py的函数里使用这个lockfile的值呢?
开始我们使用的是 global lockfile 方法,这种只能在单文件里赋值,比如:
lockfile = 1
def jrun():
global lockfile
return lockfile+2
这样的话可以正常运行,返回3 。但是如果我们把jrun()放入到另外一个文件里,就无法运行了。因为在这个py模块中并没有一个叫做lockfile的变量,于是就会报错未定义。 下面我们给出正确的方法。
cnc.py
import func
lockfile = '/tmp/laoji.org.cnc'
func.GlobalVar.lockFileName = lockfile #赋值到func里
func.t = 123
a()
func.py
class GlobalVar:
lockFileName = None
t = None
def a():
xxx = GlobalVar.lockFileName #这里就可以调用到设置的lockFileName值
global t
# 这里也同样可以调用到t的值
dosomething...
cmc.py
import func
lockfile = '/tmp/laoji.org.cmc'
func.GlobalVar.lockFileName = lockfile #这里就可以调用到设置的lockfile值了
func.t = 333
a()
这里仅仅提供思路,大家还要根据实际情况举一反三。