python 全局变量与局部变量

一,什么叫做全局变量?局部变量?

答:在全局生效的变量叫做全局变量,在子程序中定义的变量叫做局部变量

当全局变量与局部变量同名时,在定义局部变量的子程序中,局部变量起作用,在其他地方全局变量起作用。

#-*-coding:utf-8-*-
name = "hello" #全局变量
def change_name():
x=1#局部变量
name = "你好"
print ("changename",name)
change_name() #输出的是局部变量
print name #输出的是全局变量

 二, 关键字global 全局变量重新声明,输出的都是重新声明之后的变量

#-*-coding:utf-8-*-
name = "hello" #全局变量
def change_name():
    x=1#局部变量
    global name
    name = "你好"
    print ("changename",name)
change_name() 
print name  #加上global之后全局变量被改变,输出的是你好

 三,

#如果函数的内容无global关键字
#   - 有声明局部变量
NAME = ["n","l"]
# def qupengfei():
#      NAME = "myself"
#      print('want', NAME)
# qupengfei()
- 无声明局部变量
def qupengfei():
    NAME.append("d")
    print('want', NAME)
qupengfei()
## 如果函数的内容有global关键字
#   - 有声明局部变量
NAME = ["n","l"]
def qupengfei():
     global  NAME
     NAME = "myself"
     print('want', NAME)
qupengfei()

 练习:请输出打印内容:黄伟
刘洋
刘洋
沪指花
黄伟

def huangwei():
    name = "黄伟"
    print(name)
    def liuyang():
        name = "刘洋"
        print(name)
        def nulige():
            name = '沪指花'
            print(name)
        print(name)
        nulige()
    liuyang()
    print(name)
huangwei()

 练习2

name = "gang"
def weihou():
    name = "chen"
    def weiweiho():
        global name
        name ="leng"
    weiweiho()
    print name

print name
weihou()
print name

 输出结果为:gang
chen
leng

猜你喜欢

转载自www.cnblogs.com/wangyue0925/p/8940653.html