Python 跨文件 function函数 定义全局变量 代码实例

老季是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()

这里仅仅提供思路,大家还要根据实际情况举一反三。

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】

百度云不止一折优惠【点击购买】

发表评论

电子邮件地址不会被公开。 必填项已用*标注