读书人

python:全局变量的有关问题

发布时间: 2012-02-13 17:20:26 作者: rapoo

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就会看到改变。
[解决办法]

Python code
class b     global A     A 

读书人网 >perl python

热点推荐