局部变量与全局变量
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)
网友评论