码迷,mamicode.com
首页 > 其他好文 > 详细

函数---名称空间和作用域

时间:2018-12-07 21:11:56      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:col   span   权限   调用函数   就是   size   fat   fun   and   

今日新名词:

1)globals()查看全局作用域的内容;

2)locals()查看局部作用域的内容;

3)global() 调用修改全局作用域变量的权限;

4)nonlocal()调用修改局部作用域变量的权限.

=====================================================================

1)查看全局作用域中的内容:包括名字和对应的值

print(globals())  #查看全局作用域的内容  包括(内置名称空间+全局名称空间)

 

2)查看局部作用域中的内容:

 

print(locals())  #查看当前作用域中的内容

#全局不允许查看调用局部的内容;但局部允许查看调用全局的内容

===============================================================

3)修改全局变量的方法

修改方法: global()    # 注意跟查看全局作用域的方法globals()就查一个字母s,修改后的变量后面其他人调用全局的它都是这个值

flag = False
def login(): #创建个函数
    global flag   #获取修改这个变量的权限
    uname = input("用户名:") #用户登陆
    upwd = input("密码:")
    if uname == "alex" and upwd == "123":
        flag = True   #如果登陆成功就修改全局的变量
    else:
        flag = False  #如果不成功,保持原样

def fatie():   #发帖需求
    if flag == True:   #只有上面登陆成功了,才会修改全局变量,才可以发帖
        print("可以发帖")
    else:   #查看到没有被修改就提示它,去登陆
        print("滚去登录")

login()  
fatie()
fatie()

 

 

4)修改局部变量的方法:

nonlocal()     #寻找离他最近的一个变量,只在局部作用域范围内,调用后,就可从新赋值,并且作用于调用的局部内(从哪调的,作用于哪)但是它永远不着全局,局部找一遍没有,就报错.

 

a= 50
def funcl():
    a = 10
    def funce2():
        nonlocal a  #不找全局
        a+=20
        print("最里面的",a)
    funce2()
funcl()
输出结果为:最里面的 30

 

5)函数的嵌套:

函数里查找并使用变量的顺序:自己,上一层,上一层,上一层,直到内置作用域,没有就报错

6)函数的调用

就记住一点就行,def name() 只是创建了个函数,没有被调用就是空,摆设;只有name()才是调用函数,这个函数才会启动起来  

 

函数---名称空间和作用域

标签:col   span   权限   调用函数   就是   size   fat   fun   and   

原文地址:https://www.cnblogs.com/lgw1171435560/p/10084376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!