实例详解python函数的对象、函数嵌套、名称空间和作用域
Python  /  管理员 发布于 7年前   387
python中一切皆对象
引用
def f1(): print('from f1')f1() #调用函数print(f1)print('*'*50)f = f1 # 将函数名f1赋值给ff() # f也可以调用函数print(f)from f1<function f1 at 0x000001FB05534620>**************************************************from f1<function f1 at 0x000001FB05534620>
函数名相当于一个变量名,既能接收函数体返回的值,也能赋值。
def f1(): print('from f1')def f2(a): return af3 =f2(f1)f3()print(f3)from f1<function f1 at 0x00000275FA914620>
def f1(): print('from f1')def f2(): return f1f3 =f2()f3()print(f3)from f1<function f1 at 0x0000014931304620>
def f1(): print('from f1')l = [1,2,3,f1]l[3]()from f1
函数的嵌套定义
函数内部定义的函数,无法在函数外部使用内部定义的函数。
from math import pidef circle(r,action): if action == 'p': def perimeter(): return 2 * pi * r res = perimeter() elif action == 'a': def area(): return pi * r**2 res = area() else: return ' ' return resresult = circle(2,'p')print(result)12.566370614359172
名称空间
内存存储变量名与变量间的绑定关系的空间(存放变量名的空间),这个空间被称为名称空间。
内置名称空间
内置名称空间:存放python解释器自带的名字,如:int、float、len等
len()
int()
生命周期:在解释器启动时生效,在解释器关闭时失效。
全局名称空间
全局名称空间:除了内置和局部的名字之外,其余都存放在全局名称空间,如:x、func、l、z
生命周期:在文件执行时生效,在文件执行结束后失效。
局部名称空间
局部名称空间:用于存放函数调用期间函数体产生的名字。
def f1(): x = 1 def f2(): # f2就是局部名称空间 pass f2()
生命周期:在文件执行函数调用期间时生效,在函数执行结束后失效。
加载顺序 (考试必考)
内置名称空间―>全局名称空间―>局部名称空间
查找顺序 (考试必考)
从当前名称空间开始查找,然后逐步往上,如果当前为局部,则顺序为局部―>全局―>内置
作用域:作用的区域
作用域关系在函数定义阶段就已经确定好了
函数与函数之间可能会有相同名字的变量,但是这个两个变量毫无关系,作用域不同
适用于全局+内置,即全局可以修改内置的,内置也可以修改全局的
只适用于局部范围,在局部定义的名字只能在局部获取
x =100def f1(): x =1 print(x) # 定义阶段f1()
global 局部修改全局 (了解,面试常用)
x =100def f1(): global x x =1 # print(x)f1()print(x)
nonlocal 把局部改成外部
xxxxxxxxxx9 1 def f1():2 x =13 def f2():4 nonlocal x 5 x =36 f2()7 print(x)8f1()93pythono
总结
以上所述是小编给大家介绍的python函数的对象、函数嵌套、名称空间和作用域,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号