做电影网站程序哪个好,备案网站名称修改,代做计算机毕业设计网站,凡科网站制作一、函数的全局变量 1、什么是全局变量 顶着头开始写#xff0c;没有任何缩进#xff0c;在py文件的任何位置都能调用 #!/usr/bin/env python
# _*_ coding:utf8 _*_
namegouguoqinamegouguoqi
def change_name():print (111,(name)) …一、函数的全局变量 1、什么是全局变量 顶着头开始写没有任何缩进在py文件的任何位置都能调用 #!/usr/bin/env python
# _*_ coding:utf8 _*_
namegouguoqinamegouguoqi
def change_name():print (111,(name)) #这里的name就是调用的全局变量
change_name()C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111 gouguoqi 2、全局变量与局部变量的区别 namegouguoqi
def change_name():namemiaoye #局部变量print (111,(name)) #这打印的是局部变量
change_name() #这里函数调用的是局部变量的name
print (name) #这里是是调用的函数外面的全局变量C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111 miaoyegouguoqi 3、global 关键字。想要在函数里面修改全局变量应该如何做 global name就代表调用全局的变量name 专业的说法是global 后面的name是一个指针一个内存地址直接调用的那个内存地址 调用之后在子程序局部程序里面再次给name赋值的话就修改了全局变量name了 namegouguoqi
def change_name():global namenamemiaoyeprint (111,(name))
change_name()
print (name)C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111 miaoyemiaoye 全局作用域是全局 局部作用于是局部 变量调用的顺序是先找局部作用域如果找不到再往外层找然后在找全局作用域 4、人性化的描述全局变量和局部变量 我们把全局变量当做是一个盒子局部变量是这个盒子里面的小盒子。这些小盒子是同一个级别的当程序运行的时候是从上到下的运行方式碰到函数之后先不运行继续往下走直到调用函数的时候才打开函数的子程序进行赋值运行然后出结果 当自己的盒子里面没有要寻找的变量的时候就去盒子外面找外面没有再去全局找 如果函数内部没有globe关键字优先读取局部变量能读取全局变量无法对全局变量重新赋值但是对于可变类型可以对内部元素进行操作可以append 如果函数中有golobe关键字变量本质上就是全局的那个变量可读取可重新赋值 (4).1 如果函数中无global关键字优先读取局部变量能读取全局变量无法对全局变 量重新赋值但是对于可变类型可以对内部元素进行操作可以append remove clear 如果声明了局部变量就调用局部变量 如果没有声明局部变量就会调用全局变量 name苍老师 #这是真正的苍老师肉体
def gou():name 娃娃print (我要搞,name)
def miao():name 基print (我要搞,name)def bei():print (我要搞,name)
gou()
miao()bei()C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py我要搞 娃娃我要搞 基我要搞 苍老师 如果变量是一个可变的类型可以用方法来进行apped remove clear name[苍老师,波多野吉衣]
def gou():name.append(基)print (我要搞,name)
gou()print (name)C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py我要搞 [苍老师, 波多野吉衣, 基][苍老师, 波多野吉衣, 基] (4).2如果函数中有global关键字变量本质上就是全局的那个变量(指针)可读取可赋值 在局部子程序调用全局变量(如果只是调用的话相当于做蜡像) name苍老师 #这是真正的苍老师肉体def gou():global name #相当于做了一个苍老师的蜡像跟本人一模一样print (我要搞,name)
def miao():name 基print (我要搞,name)
gou()
miao()C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py我要搞 苍老师我要搞 基 (4).3在局部变量中修改全局变量(修改的话相当于玩过了感觉不过瘾就换人了) name苍老师 #这是真正的苍老师肉体
def gou():global name #相当于玩了苍老师的肉体name 波多野吉衣 #感觉不是很好把苍老师换成了波多野吉衣print (我要搞,name)
def miao():print (我要搞,name)#因为上面已经换人了所以下面这人玩的也是波多野吉衣
gou()
miao()C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py我要搞 波多野吉衣我要搞 波多野吉衣 (4.)4 错误示例局部变量也有name全局变量也有name并且全局变量在局部变量下面的位置 代码过程是首先定义了一个全局变量在局部子程序首先设置了相同名字的局部变量再引用了全局变量然后在去打印的时候就不知道打印的到底是全局变量还是局部变量了这样写是不行了所以以后要养成一个习惯就是global一定要放到上面再工作中我们定义全局变量最好用大写局部变量小写这样下面函数一调用 我们一看是大写的就知道是全局变量了 namegouguoqi
def change_name():name 阿猫global nameprint (111,(name))
change_name()C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111 阿猫D:/pyproject/day14函数/全局变量和局部变量.py:19: SyntaxWarning: name name is assigned to before global declarationglobal name (4).5函数中嵌套函数 函数的执行过程 name北爷 #1 第一步 定义全局变量name
def huangwei(): #2 第二步 定义一个函数到49行第二步结束把这些都放到内存里面加载上并没有执行name 黄伟 #4.1 定义局部变量nameprint (name) #4.2 打印局部变量name的值 黄伟def liuyang(): #4.3 定义一个函数然后把这段到47行的代码又放入了内存等待下次调用name 刘洋 #4.4.1定义局部变量nameprint (name) #4.4.2打印出局部变量name 刘洋def nulige():#4.4.3 又遇到def了。又把这一部分到45行的代码放入了内存没有执行。等待下次调用name 喵爷#4.4.5.1定义了一个局部变量nameprint (name)#4.4.5.2打印局部变量name的值喵爷print (name)#4.4.4 打印name 刘洋nulige()#4.4.5 调用nulige这个函数开始向上找liuyang()#4.4 调用liuyang这个函数开始向上找print(name) #4.5 第五步 打印name 这时候的name的值是黄伟
print(name) #3 第三步 打印name 这时候name北爷
huangwei() #4 第四步 执行huangwei这个函数开始向上找他
print(name)#5第五步 打印全局变量name def gou():#1name 狗#2.1print (name)#2.2def mao():#2.3name 猫#2.4.1print (name)#2.4.2def zhu():#2.4.3name 猪#2.5.1.1print (name)#2.5.1.2zhu()#2.5.1print(name)#2.5.2mao()#2.4print (name)#2.5
gou()#2C:\python35\python3.exe D:/pyproject/day14函数/hanshu.py狗猫猪猫狗 Name beiye #1 定义一个全局变量
def weihou(): #2 把从函数到143行的放入内存中等待被调用name 沉着#4.1 定义一个局部变量name 沉着def weiweihou(): #4.2 又遇到def 把到141行的代码再次放入内存等待被调用global Name#4.3.1Name 冷静#4.3.2 把全局变量修改为 冷静weiweihou()#4.3 调用weiweihou 开始向上找这个函数print(name)#4.4 打印下这个级别的name 是 沉着
print(Name)#3 打印一下全局变量 Name 等于 beiye
weihou()#4 调用函数 weihou开始网上找 weihou这个函数
print(Name) #5 打印下全局变量 这时候全局变量是冷静了C:\python35\python3.exe D:/pyproject/day14函数/hanshu.pybeiye沉着冷静 那我要是想修改我上一级的name呢而不是修改全局的name呢该怎么做呢 nonloca 这个关键字就是修改上一级的变量的我们来测试下还是上面的例子改变下 nonlocal 修改上一级的变量 Name beiye #1 定义一个全局变量
def weihou(): #2 把从函数到143行的放入内存中等待被调用name 沉着#4.1 定义一个局部变量name 沉着def weiweihou(): #4.2 又遇到def 把到141行的代码再次放入内存等待被调用nonlocal name#4.3.1name 冷静#4.3.2 把上一级的name变量修改为 冷静weiweihou()#4.3 调用weiweihou 开始向上找这个函数print(name)#4.4 打印下这个级别的name 是 沉着
print(Name)#3 打印一下全局变量 Name 等于 beiye
weihou()#4 调用函数 weihou开始网上找 weihou这个函数
print(Name) #5 打印下全局变量 这时候全局变量是冷静了C:\python35\python3.exe D:/pyproject/day14函数/hanshu.pybeiye冷静beiye 转载于:https://www.cnblogs.com/gouguoqilinux/p/9153381.html