python:全局变量的问题?
程序结构如下:
#定义了全局变量A
A=0
#class处理A
class b
global A
A
#main里给A赋值
A = 1
程序执行时发现class里A的值还是0
新手有几个问题:
1、python程序执行的顺序,如本例,由执行结果看,是顺序执行?
2、想在class里处理在被mail赋值后的A,如何才能实现?
3、如果2行不通,有什么方法可以做到?
谢谢。
[解决办法]
变量的执行顺序为局部空间->全局空间->内建空间;
所以在main里给A赋值,只是定义了一个局部变量
程序执行顺序要看你从哪个函数调用进入
可以从main中传参数到类中的方法啊
[解决办法]
应该是位置的问题,类b的global A摆放的位置在类本身,定义的时候就会执行,也就是在#main前执行了。你可以试着摆放到类的某个方法里,譬如在__init__(self)下,那么你在#mian后改A然后再实例一个b就会看到改变。
[解决办法]
class b global A A