今天的内容整理共有5部分
一、命名关键字参数
二、函数对象
三、函数的嵌套
四、名称空间与作用域
五、闭包函数
一、命名关键字参数
命名关键字参数:在定义函数是,*与**之间的参数称为命名关键字参数
特点:在调用函数时,命名关键字参数必须按照key=value的形式传值
正常的函数形参排列(位置,关键字,*args,命名关键字,**kwargs)
二、函数对象
函数是第一类对象:指的是函数内存地址可以像一个变量值一样去使用
1.变量值可以被引用
2.变量值可以当做参数传给另外一个函数
3.变量值可以当做参数传给另外一个函数
4.变量值可以当做容器类型的元素
func_dic={
‘1‘:regisister
‘2‘:login
‘3‘:pay
‘4‘:transtr
}
while True:
print("""
0 退出
1 注册
2 登录
3 支付
4 转账
“”“)
choice=input(‘请输入你的操作:‘).strip
if choice==‘0‘:break
if chice not in func_dic
print(‘输入的指令不存在’)
continue
func_dic[choice]()
三、函数嵌套
函数的嵌套用:在一个函数内部又调用其他的函数
def max4(a,b,c,d)
res1=max2(a,b)
res2=max2(res1,c)
res3=max2(res2,d)
return res3
函数的嵌套定义:在函数内有定义了其他函数
from math import pi
def circle(radius,action):
def cal_perimerter():
return 2*pi*radius
def cal_area():
return pi *(radius**2)
if action==1:
res=cal_perimeter()
elif action ==2:
res=cal_area()
return res
res=circle(10,1)
print(res)
四、名称空间与作用域
1、名称空间相关内容
1.1名称空间Namespace:指的就是存放名字与值内存地址绑定关心的地方(内存空 间)
1.2名称空间三大类
内置名称空间:存放的是python解释器自带的名字
产生:python解释器的启动则产生
销毁:python解释器关闭则销毁
全局名称空间:在顶级定义的名字(除局部名称除外都是全局名称)
产生:执行python程序时产生
销毁:python程序执行完毕后则销毁
局部名称的空间:在函数内定义的名字
产生:在函数调用时临时产生
销毁:在函数调用完毕后销毁
三种名称空间的产生的先后顺序:内置》全局》局部
查找名字的顺序:从当前位置往外一层一层查找
如果当前在局部名称空间:局部》全局》内置
如果当前在全局名称空间:全局》内置
2,作用域:指的是作用的范围
全局作用域:包含内置于全局名称空间的名字
特点:全局存活,全局有效
局部作用域:包含局部名称空间的名字
特点:临时存活,局部有效
!!!作用域关系在函数定义阶段就已经被固定死了,与调用位置无关
def f1():
print(xxx)
xxx=111
def f2():
xxx=222
f1()
f2()
五、闭包函数
闭:封闭,指的是该函数是定义一个函数内部的函数
包:该内部函数包含对外层函数的名字的引用
为函数传值得两种方法:
方式一:直接以参数的形式传入
def foo(name):
print(’hello %s‘ %name)
foo(‘egon‘)
方式二:闭包函数
def outter(name):
def foo():
print(’hello %s‘ % name)
return fo
f=outter(‘egon‘)
原文地址:https://www.cnblogs.com/wuzhengzheng/p/9709543.html