几种不常用的函数

  • 一、偏函数

偏函数就是一个辅佐函数,为了固定函数的参数使用的 (默认固定第一个参数)

需要调用 import  functools:可以把一个函数的参数固定住,并生成一个新函数,不会改变原函数

当实参会出现很多次的时候不想都传递这个实参,就用偏函数把这个实参固定住

import functools

def mySum(x,y):
    return x+y
m=functools.partial(mySum,3)
print(m(y=3))

#二进制转换
str1='1001'
str2='1111'
myInt=functools.partial(int,base=2)

a=myInt(str1)
b=myInt(str2)
print(a)
print(b)
  • 二、匿名函数
'''
什么情况下使用匿名函数
当代码只需要执行一次的时候并且只能处理很简单的逻辑
创建:lambda
    在冒号前写形参 冒号后写逻辑
'''
a=lambda x:x+3
print(a(2))
  • 三、回调函数
'''
回调函数:
    将函数当做参数传递给另一个函数
'''
def fun(f):
    print('fun')
    print(f())
    f()
    print('over')

def eat():
    print('吃饭')
    return 1
fun(eat)
  • 四、嵌套函数
'''
嵌套函数:
    在python中定义函数的时候是可以嵌套定义的
    带小括号会执行函数内部逻辑,不带小括号是函数的地址值
'''
def fun1():
    print('fun1')
    def fun2():
        print('fun2')
    fun2()
fun1()


def fun1():
    print('第一层嵌套')
    def fun2():
        print('第二层嵌套')
    return fun2()
fun1()


  • 五、重点,装饰器
'''
装饰器:
    嵌套函数和回调函数的结合
    装饰器外层接受的是函数,内层接收的参数
'''

# def zhuangshi(f):
#     def inner(x,y):
#         print('******')
#         f(x,y)
#         print('******')
#     return inner
# @zhuangshi
# def mySum(x,y):
#     print('2数之和',x+y)
# mySum(2,3)
# @zhuangshi
# def mySub(x,y):
#     print('2数之积为:',x*y)
# mySub(3,4)


import time
def jiancetime(f):
    def inner(*x):
        a=time.time()
        f(*x)
        b=time.time()
        print('时间差为:',(b-a))
    return inner
@jiancetime
def mySum(x,y):
    sum=0
    for i in range(x,y):
        sum+=i
mySum(1,9999999)

@jiancetime
def mySub():
    sum=1
    for i in range(1,9999):
        sum*=i
mySub()
# import time
# def check(f):
#     def inner(*x):
#         a=time.time()
#         f(*x)
#         b=time.time()
#         print(b-a)
#     return inner
# @check
# def mySum(x,y):
#     sum=0
#     for i in range(x,y):
#         sum+=i
# mySum(1,9999999)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值