zoukankan      html  css  js  c++  java
  • python语法31[变量的作用域+global]

     一  变量与作用域

      变量的定义使用var=varvalue

    1)如果函数中定义了同名的变量,则同名的全局变量被屏蔽,否则查找使用全局变量

    def f1():
        v1 
    = 'local'
        f2()
        
    print (v1)

    def f2():
       
    print(v1)

    v1 
    = "Value1"
    f1()
    #Value1
    #
    local

    2)内嵌定义的函数中的变量的使用,如果内嵌函数中没有定义,则先查找包含此内嵌函数作用域中变量的定义,最后查找全局中变量的定义。

    def f3():
      
    def f4():
        
    print (v3)
      v3 
    = "Value3#"
      
    print(v3)
      f4()

    v3 
    = "Value3"
    f3()
    #Value3#
    #
    Value3#

    3)注意=赋值时,不可变类型其实是产生了对原变量的引用,可变类型与原来的共享相同的内存。

    def f5():
      v51 
    = 100
      v53 
    = v52
      v53.append(
    100)
      
    print( v51)
      
    print( v53)
      
    v51 
    = 10
    v52 
    = [10]
    f5()
    print(v51)
    print(v52)
    #100
    #
    [10, 100]
    #
    10
    #
    [10, 100]

    4)作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域。

    def f7(right):
      
    if(right):
         result 
    = True
      
    else:
         result 
    = False
      
    print (result)
      
      
    try:
        v7 
    = "Value7"
      
    except:
        
    pass
      
    print(v7)
      
    f7(False)
    #False
    #
    Value7

    三 global关键字

    global关键字用来在局部作用域中申明使用全局变量。

    def f6():
      
    global v6 
      
    print(v6)
      v6 
    = "local"
      
    print(v6)
      
    v6 
    = "global"
    f6()
    print(v6)
    #global
    #
    local
    #
    local

    参考:

    http://hi.baidu.com/xjtukanif/blog/item/f35000f1642670c00b46e03c.html

    完!

  • 相关阅读:
    头部尾部始终处于两端(适用于pc端和移动端)
    运用active和hover实现导航栏的页面切换
    POJ1423-阶乘的位数-Big Number
    大数阶乘
    n皇后
    4103:踩方格
    2815:城堡问题
    特殊回文数
    十六进制转十进制
    十六进制转八进制
  • 原文地址:https://www.cnblogs.com/itech/p/1945501.html
Copyright © 2011-2022 走看看