pys60中 ,在函数里的变量和全局变量同名的情况下,如果不做特别声明,他们就是两个不同的变量
也就是说他们有各自的内存空间,在函数内对该变量的操作不会影响全局变量
而在函数内使用了 global 对同名变量进行声明之后,他们表示的就是同一个值,也就是他们占有的是同一片内存空间,在函数内操作该变量 会 改变全局变量的值
测试代码如下:
- # 测试 global 缩进使用 TAB
import appuifw,e32 - def cn(x):return x.decode("utf-8")
def exit():
appuifw.app.set_exit()
appuifw.app.body=m=appuifw.Text() - str_a = cn("qq")
- def u():
str_a = cn("ab") # u 函数里的变量 str_a 为局部变量
m.set(str_a)
m.add(cn("\n这是局部变量")) - def p():
global str_a # 声明p 函数里的 str_a 为全局变量
str_a = cn("ch") # 改变全局变量 str_a 的值 - u()
if appuifw.query(cn("显示全局变量?"),"query"): # number date time code query
p()
m.set(str_a)
m.add(cn("\n这是全局部变量")) - appuifw.app.menu = [(cn("显示局部变量"),u),(cn("退出"),exit)]
appuifw.app.exit_key_handler=exit
e32.Ao_lock().wait()