Python__名称空间与作用域

一:函数嵌套,在调用一个函数的过程中,又调用了其他函数

def bar():    print(‘from bar‘)def foo():    print(‘from foo‘)    bar()foo()通过函数的嵌套使用,分解成最小的操作,一次调用

二:函数的嵌套定义:在一个函数的内部,又定义了一个函数
def f1():    x = 1    def f2():        print(‘from f2‘)    f2()f1()

三:名称空间,存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方内置名称空间:python自带的名字,在python解释器启动时产生,存放一些python内置的名字全局名称空间:在执行文件时,存放文件级别定义的名字局部名称空间:在执行文件的过程中,如果调用了函数,则会产生该函数的名称空间,用来存放该函数内定义的名字,该名字在函数调用时生效,调用结束后失效加载顺序:内置名称空间------>全局名称空间----->局部名称空间名字的查找顺序:局部名称空间------>全局名称空间----->内置名称空间

四:作用域,作用的范围全局作用域:全局存活,全局有效局部作用域:局部存活,局部有效
def f1():    x = 1    y = 2    print(locals())    print(globals())f1()print(locals())print(globals())print(locals() is globals())改全局名称:
x = 1def f1():    global x    x = 2f1()print(x)

改局部名称:
x = 0 def f1():    x = 1    def f2():        x = 2        def f3():            nonlocal x#改的是函数正上方的值            x = 3        f3()    f2()f1()

五:优先掌握,在函数定义时就已经固定,与调用位置无关
x = 1def f1():    def f2():        print(x)    return f2func = f1()func()
				
时间: 2024-11-10 14:36:08

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

名称空间、作用域、闭包、装饰器、迭代器、生成器

--名称空间与作用域名称空间:是存放名字的地方准确的说名称空间是存放名字与变量值绑定关系的地方内置名称空间:在python解释器启动时产生,存放一些python内置的名字全局名称空间: 在执行文件时产生,存放文件级别定义的名字局部名称空间:在执行文件的过程中,如果调用了函数,则会产生该函数的局部名称空间,用来存放该函数内定义的名字,该名字在函数调用时生效,在函数调用结束后失效加载顺序:内置-->全局-->局部名字的查找顺序 局部-->全局-->内置max=1def foo(): m

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

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

python_day04 函数嵌套 名称空间和作用域 闭包 装饰器 迭代器 生成器 列表解析 三元表达式 生成器表达式

本节课重要知识点内容如下: 函数嵌套 名称空间和作用域 闭包 装饰器 迭代器 生成器 列表解析 三元表达式 生成器表达式 1.函数嵌套 函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数 def bar(): print('from nbar')def foo(): print('from foo') bar()foo()def max2(x,y): if x > y: return x else: return ydef max4(a,

Day19_名称空间和作用域_函数的嵌套_函数第一类对象的使用_闭包函数

一. 上节课复习 为何要使用函数 解决代码重用问题 统一维护 程序的组织结构清晰,可读性强 定义函数 !!!先定义后使用 def funcname(arg1,arg2,....) #funcname = 函数体 '''描述信息''' 函数体 return value 定义无参函数 定义有参函数 定义空函数 调用函数 语句形式:foo() 表达式形式:foo(1,2) 函数调用作为另外一个函数的参数:print(foo(1,2)) 函数返回值 不写return--->None return 一个值

函数对象、函数嵌套、名称空间与作用域、装饰器

一 函数对象 1.函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 2.利用该特性,优雅的取代多分支的if def foo(): print('foo') def bar(): print('bar') dic={ 'foo':foo, 'bar':bar, } while True: choice=input('>>: ').strip() if choice in dic: dic[choice]()