函数使用

1、变量作用域
print(globals())#查看当前空间下所有可以使用的全局变量
print(locals())#查看当前命名空间下所有可以使用的局部变量
def test1():
a=100
print(locals())
test1()#返回的是一个字典
2、偏函数
def int2():
return int(n,base=2)
b=int(‘1000’)
print(b) #二进制转十进制
偏函数:本质是固定函数参数的默认值,简化函数调用时的参数构造
import functools
int16=functools.partial(int,base=16)
c=int16(‘145’)
print©
3、匿名函数
def test2():
print(‘helllo’)
print(test2.name) #函数的名字
a=test2 #匿名函数可以像普通变量一样赋值
print(a.name)
test2()
a()

def demo(func):
func()
demo(test) #函数可以作为其他函数 的参数
格式:lambda 参数列表:表达式
参数列表:书写形式和函数的参数列表相同
表达式:就是匿名函数 的返回值,不需要使用return关键字
def calc(a,b,yunsuan):
return yunsuan(a,b)
print(calc(1,5,lambda a,b:a+a))
print(calc(2,7,lambda a,b:a*b))
列表排序使用匿名函数的例子
lt = [
{‘name’: ‘dahua’, ‘age’: 18, ‘height’: 175},
{‘name’: ‘erhua’, ‘age’: 17, ‘height’: 165},
{‘name’: ‘dagou’, ‘age’: 22, ‘height’: 185},
{‘name’: ‘ergou’, ‘age’: 21, ‘height’: 180}
]
def key(dt):
return dt[‘age’]
#lt.sort(key=key)#第一个key是sort里面的key=None,第二个key是key()函数
lt.sort(key=lambda dt:dt['height])
for i in lt:
print(i)

4、闭包使用
闭包:在外部函数中定义一个内部函数;在内部函数中使用外部函数定义的局部变量;在外部函数将内部函数作为返回值返回,返回的函数称为闭包
闭包可以认为是具有执行环境的函数
def wai(n):
def nei():
return n*n
return nei
s1=wai(3) #s1和s2都是闭包
s2=wai(5)
print(s1())
print(s2())

5、装饰器
需要修改函数功能时,可以通过装饰器进行解决,该函数有一个参数是函数类型,返回值是一个闭包。在闭包中调用传递进来的函数,在调用函数的前后都可以添加内容
def zhuangshiqi(func):
def neibu():
print('’)
func()
print(’#############’)
return neibu
@zhuangshiqi #相当于test3=zhuangshiqi(test3)
def test3():
print(‘hello’)
#test3=zhuangshiqi(test3)
test3()
标准装饰器
import functools
def zhuangshiqi(func):
@functools.wraps(func) #专门用来修正被修饰的函数的名字
def neibu(args,kwargs):
print('
’)
result=func(args,**kwargs)
print('
****’)
return result
return neibu
@zhuangshiqi
def show(a,b):
return a
b
print(show(1,6))
print(show.name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值