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

今日新名词:

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()才是调用函数,这个函数才会启动起来  

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

时间: 2024-07-29 22:36:25

函数---名称空间和作用域的相关文章

Python:函数名称空间与作用域:

Python:函数名称空间与作用域 函数对象:(第一类对象) 定义:函数是第一类对象:函数名可以当做数据来使用 1.可以直接被引用,加()就能运行 def foo(): print("from foo") f=foo f() 2.可以当作参数传入另一个函数 def warpper(x): x() warpper(foo) 3.可以当作另外函数的返回值 def warpper2(): return foo f=warpper2() print(f is foo) 4.可以当作容器类型的一

函数名称空间与作用域

函数嵌套 函数的嵌套定义 函数内部定义的函数,无法在函数外部使用内部定义的函数 def f1(): def f2(): print('from f2') f2() f1() from f2 函数的嵌套调用 def max2(x,y): if x > y: return x else: return y def max4(a,b,c,d): res1 = max2(a,b) res2 = max2(res1,c) res3 = max2(res2,d) return res3 print(max4

Python开发【第XXX篇】----函数 -名称空间与作用域

一:函数嵌套,在调用一个函数的过程中,又调用了其他函数 def bar(): print('from bar')def foo(): print('from foo') bar()foo()通过函数的嵌套使用,分解成最小的操作,一次调用 二:函数的嵌套定义:在一个函数的内部,又定义了一个函数 def f1(): x = 1 def f2(): print('from f2') f2()f1() 三:名称空间,存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方内置名称空间:pytho

python基础之函数名称空间与作用域

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

python学习笔记第五节(函数,名称空间,作用域)

python2中 默认存为unicode需要再字符串前加u 循环打印每一行 循环打印整个文件内容方式二下面这种同一时间取一行 先定义后执行 函数定义的时候,只检测语法错误,不执行 函数返回值,默认是元组模式return 只能返回一次 形参与实参 形参就是变量名实参就是值 打破顺序限制 经常变化的值用位置形参,值通常不变的用默认参数.默认参数通常定义成不可变类型.默认参数只在定义时被赋值一次. 可变长参数就是* 关键字参数(关键字参数指的是实参当中指定y=2,z=3等等) *等同于位置参数 函数内

python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象

今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): return x**2 y=func(10) print(y) def foo(): return None res=foo() print(res) def foo(): return{'a':1} res=foo() print(res['a']) def foo(): return {'a':1},1,'a',[1,2] res=foo() p

11、函数对象、函数的嵌套、名称空间与作用域

一.函数对象 函数对象,函数是第一类对象,即函数可以当做数据传递 具体特点: 1.可以被引用: 1 def foo(): 2 print('from foo') 3 4 func=foo 5 6 print(foo) 7 print(func) 8 func() 2.可以当作参数传递 1 def foo(): 2 print('from foo') 3 4 def bar(func): 5 print(func) 6 func() 7 8 bar(foo) 3.返回值可以是函数 1 def fo

函数对象,函数的嵌套,名称空间与作用域,闭包,装饰器,迭代器,内置函数

一,函数对象 函数对象:函数是第一类对象,即函数可以当做数据传递 1,可以被引用 2,可以做参数的传递 3,返回值可以是函数 4,可以当作容器类型的元素 二,函数嵌套 1,函数的嵌套调用 2,函数的嵌套定义 三,名称空间与作用域 名称空间:存放名字的地方叫名称空间,存放这些值与名字的绑定关系 查看内置名称的两种方法: 三种名称空间 1,内置名称空间:随着python解释器的启动而产生 2,全局名称空间:文件的执行会产生全局名称空间,指的是文件级别定义的名字都会放入该空间 3,局部名称空间:调用函