pys60中全局变量的使用(global)

Posted on 2009-06-29 17:52  fouri  阅读(254)  评论(0编辑  收藏  举报

      pys60中 ,在函数里的变量和全局变量同名的情况下,如果不做特别声明,他们就是两个不同的变量

也就是说他们有各自的内存空间,在函数内对该变量的操作不会影响全局变量

 

      而在函数内使用了 global 对同名变量进行声明之后,他们表示的就是同一个值,也就是他们占有的是同一内存空间,在函数内操作该变量 改变全局变量的值

 

测试代码如下:

  1. # 测试 global 缩进使用 TAB
    import appuifw,e32
  2. def cn(x):return x.decode("utf-8")
    def exit():
        appuifw.app.set_exit()
       
    appuifw.app.body=m=appuifw.Text()
  3. str_a = cn("qq")
  4. def u():
        str_a = cn("ab") # u 函数里的变量 str_a 为局部变量
        m.set(str_a)
        m.add(cn("\n这是局部变量"))
  5. def p():
        global str_a # 声明p 函数里的 str_a 为全局变量
        str_a = cn("ch")   # 改变全局变量 str_a 的值
  6. u()
    if appuifw.query(cn("显示全局变量?"),"query"): # number date time code query
        p()
        m.set(str_a)
        m.add(cn("\n这是全局部变量"))
  7. appuifw.app.menu = [(cn("显示局部变量"),u),(cn("退出"),exit)]
    appuifw.app.exit_key_handler=exit
    e32.Ao_lock().wait()

 

    下载测试代码