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()

三:名称空间,存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方内置名称空间: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-10-07 05:38:24

Python开发【第XXX篇】----函数 -名称空间与作用域的相关文章

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

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

今日新名词: 1)globals()查看全局作用域的内容; 2)locals()查看局部作用域的内容; 3)global() 调用修改全局作用域变量的权限; 4)nonlocal()调用修改局部作用域变量的权限. ===================================================================== 1)查看全局作用域中的内容:包括名字和对应的值 print(globals()) #查看全局作用域的内容 包括(内置名称空间+全局名称空间) 2)

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

python基础之====函数对象、函数嵌套、名称空间与作用域、装饰器

阅读目录 一 函数对象 二 函数嵌套 三 名称空间与作用域 四 闭包函数 五 装饰器 六 练习题 一 函数对象 一 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 二 利用该特性,优雅的取代多分支的if def foo(): print('foo') def bar(): print('bar') dic={ 'foo':foo, 'bar':bar, } while True: choice=input(

python基础(3):函数对象、函数嵌套、名称空间与作用域、装饰器

函数对象 函数嵌套 名称空间与作用域 闭包函数 装饰器 练习 一 函数对象 #1 可以被引用 def max(x, y): return x if x > y else y func = max print(func(1, 2)) #2 可以当作参数传递 def max(x, y): return x if x > y else y def max_1(x, func): return func(x, 1) print(max_1(2, max)) #3 返回值可以是函数 #4 可以当作容器类

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

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

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

一.函数对象 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 # 利用该特性,优雅的取代多分支的if 二.函数嵌套 三.名称空间与作用域 四丶装饰器 原文地址:https://www.cnblogs.com/moyand/p/8667266.html

Python全栈__动态参数、名称空间、作用域、作用域链、加载顺序、函数的嵌套、global、nonlocal

1.动态参数 当实参数量与形参数量相等时,参数传递正常. def func1(a, b, c): pass func1(1, 2, 3) 当实参数量与形参数量不相等时,则会报错. def func1(a, b, c): pass func1(1, 2, 3, 4, 5, 6, 6) 用户传入到函数中的实参数量不确定时,或者为了以后扩展,此时要用到动态参数 *args  **kwargs(万能参数). 顺序: 位置参数,*args,默认参数,**kwargs 1.*args *args是接收的是所