python的functools用来封装函数,类似javascript的bind函数

# coding=utf-8

import asyncio
import functools


def callback(fu, n):
    print("{}: future donw:{}".format(n, fu.result()))


async def regCallback(allDone):
    print("reg callback")
    allDone.add_done_callback(functools.partial(callback, n=18))
    allDone.add_done_callback(functools.partial(callback, n=19))


async def deal(allDone):
    await regCallback(allDone)
    print("jieguo result")
    allDone.set_result("this result")


def test(name, age, work):
    print("name={}, age={}, work={}".format(name, age, work))


if __name__ == "__main__":
    call = functools.partial(test, age=8443)
    call("you ", work="wo")

    call2 = functools.partial(test,work="call2 work",age=73)
    call2("my name is call2")
    # loop = asyncio.get_event_loop()
    # try:
    #     allDone = asyncio.Future()
    #     par = deal(allDone)
    #     loop.run_until_complete(par)
    # finally:
    #     loop.close()

结果:

name=you , age=8443, work=wo
name=my name is call2, age=73, work=call2 work

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值