美文网首页
python 学习知识点

python 学习知识点

作者: 一片落叶就是渺小 | 来源:发表于2018-08-19 19:29 被阅读0次

局部变量与全局变量

1.局部变量是指在函数内部定义并使用的变量,它只在函数内部有效。如果在函数外部使用函数内部定义的变量,就会出现NameError异常。

def demo():
    msg = '会当凌绝顶,一览终山小'
    print('局部变量msg =',msg)
demo()
print('局部变量msg',msg)

2.全局变量为能够作用于函数内外的变量。分为以下两种情况:
1.如果一个变量在函数外定义,那么不仅在函数外可以访问到,在函数内也可以访问到。在函数体以外定义的变量是全局变量。

msg = '大漠孤烟直,长河落日圆'
def demo():
    print('函数体内:全局变量msg =',msg)
demo()
print('函数体外:全局变量msg =',msg)

注:当局部变量和全局变量重名时,对函数体的变量进行赋值后,不影响函数体外的变量。
2.在函数体内定义并且使用global关键字修饰后,该变量也就变成为全局变量。在函数体外也可以访问到该变量,并且在函数体内也可以对其进行修改。

msg = '接天莲叶无穷碧,映日荷花别样红'
print('函数体外:msg=',msg)
def demo():
    msg = '春蚕到死丝方尽,蜡炬成灰泪始干' 
    print('函数体内:msg =',msg)
demo()
print('函数体外:msg =',msg)

在函数内部定义的变量即使与全局变量重名,也不影响全局变量的值。那么想在函数体内改变全局变量的值,需要定义局部变量值时,使用global关键字修饰。示例如下:

msg = '接天莲叶无穷碧,映日荷花别样红'
print('函数体外:msg=',msg)
def demo():
    global msg
    msg = '春蚕到死丝方尽,蜡炬成灰泪始干' 
    print('函数体内:msg =',msg)
demo()
print('函数体外:msg =',msg)

相关文章

网友评论

      本文标题:python 学习知识点

      本文链接:https://www.haomeiwen.com/subject/xothiftx.html