
在python编程中,一般使用global 关键字来定义全局变量,但是发现 global 关键字在涉及多个文件时,好像存在问题。
比如,单个文件下用global定义使用全局变量的情况 ,看下面的代码
程序运行结果如下:全局变量运行正确
下面把上述代码拆分成两个文件,
data_def.py
和
main.py
,
data_def.py
定义全局变量
distance
和类 ,
main.py
导入
data_def.py
。
data_def.py
文件代码如下:
main.py文件代码如下:
程序运行结果:
两次运行的结果存在出入,可以发现,用global 在不同文件间操作全局变量时,生成的结果和我们想象的不太一样,具体原因还不明确??知道原因的欢迎留言。
为此,可以考虑用类变量来定义全局变量。实现方式看以下代码。
第一个文件(
data_def.py
)定义两个类,第一个类定义全局变量distance ,第二个类为普通操作类
第二个文件(main.py) 导入第一个文件定义的类,并进行变量操作
程序执行输出结果:
从输出结果可以看出,利用类变量的方式也可以实现全局变量的定义,并且可以跨文件操作。