zoukankan      html  css  js  c++  java
  • Python局部变量和全局变量global

    当你在函数定义声明变量的时候,它们与函数外具有相同名称的其它变量没有任何关系,即变量名称对于函数来说是 局部  的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。


    使用局部变量
    例子:func_local.py
    #!/usr/bin/python
    #encoding:utf-8
     
    def func(x):
    print 'x is', x
    x=2
    print 'Changed local x to', x
     
    x=50
    func(x)
    print 'x is still', x
     
    执行func_local.py
    # python func_local.py
    x is 50
    Changed local x to 2
    x is still 50
     
    解析:
    在函数中,我们第一次使用x的值的时候,Python使用函数声明的形参的值。
    接下来,我们把值2赋给x,x是函数的局部变量。所以,当我们在函数内改变x的时候,在主块中定义的x不受影响。
    在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。
     
     
    使用globe语句
    如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而且 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
    你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。
    例子:func_global.py
    #!/usr/bin/python
    #encoding:utf-8
     
    def func():
    global x
    print 'x is', x
    x=2
    print 'Changed local x to', x
     
    x=50
    func()
    print 'Value of x is', x
     
    执行func_global.py
    # python func_global.py
    x is 50
    Changed local x to 2
    Value of x is 2
     
    解析:
    global语句被用来声明x是全局的--因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x值的时候。
    你可以使用同一个global语句指定多个全局变量。例如global x,y,z
     
  • 相关阅读:
    easyExcel入门
    UML-从需求到设计--迭代进化
    UML-操作契约总结
    102. Binary Tree Level Order Traversal
    98. Validate Binary Search Tree
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    94. Binary Tree Inorder Traversal
    84. Largest Rectangle in Histogram
    92. Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/fjping0606/p/4761131.html
Copyright © 2011-2022 走看看