分享

python变量之全局变量与局部变量的使用

 wkzcasual 2018-06-28

在函数体内的变量是局部变量

def fun():
    i=100
    print("函数内i=",i)

i=1
print("初始的i=",i)        # 初始的i= 1
fun()                     # 函数内i= 100
print("函数外i=",i)        # 函数外i= 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在函数体内设置全局变量,使用global关键字

def fun():
    global i
    i=100
    print("函数内i=",i)

i=1
print("初始的i=",i)        # 初始的i= 1
fun()                     # 函数内i= 100
print("函数外i=",i)        # 函数外i= 100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在函数体的参数是局部变量

def fun(i):
    print("函数内i=",i)

i=1
print("初始的i=",i)        # 初始的i= 1
fun(i=100)                # 函数内i= 100
print("函数外i=",i)        # 函数外i= 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

嵌套方法体:调用外部函数体的局部变量

def fun():
    i=100
    def fun2():
        j=i*2          # i调用外部方法的i
        print(j)
    return fun2()
fun()       # 200
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
def fun():
    i=100
    def fun2():
        i=i*2          # i没有定义,报错!
        print(i)
    return fun2()
fun()      # UnboundLocalError
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
def fun():
    i=100
    def fun2():
        nonlocal i     # 调用外部相同名字变量用nonlocal关键字
        i=i*3
        print(i)
    return fun2()
fun()       # 300

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多