py文件间变量的传递

python的全局变量

局部变量:定义在函数内,作用域为函数内。
全局变量:定义在函数外,作用域为全局。

a = "python"   # 函数外定义的a为全局变量
def func1():
    print (a)
def func2():
    b = "小黑屋"  # 函数内定义的b为局部变量
    print (b)
func1()          # 执行函数func1
func2()          # 执行函数func2
print(b)         # 输出函数func2中的局部变量b
>>python         # 函数func1执行后输出全局变量a
>>小黑屋          # 函数func2执行后输出局部变量b
                 # 在函数外输出局部变量b,出现了未定义的报错
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    print(b)
NameError: name 'b' is not defined

在类的方法中定义全局变量

可行的办法是这样的:假设上下两个界面的文件叫before.py和after.py。在before.py类的方法中定义全局变量VALUE,然后在after.py中import before。在使用的时候就用before.VALUE。
不可以在after.py中使用from before import VALUE,会报错显示after.py中没有VALUE这个东西。
具体原因我不是很清楚,可能是因为如果用第二种方法,在 from before import VALUE时这个类还没有实例化也没有使用这个方法,因此这个全局变量还没有产生。
但是,假设在下一个界面是after2.py。这个时候如果仍然import after以及用after.VALUE就不行,因为after里没有VALUE这个值。after也是引用了before里的VALUE。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值