partial 函数之参数传入

本文深入探讨了Python中functools模块的partial函数用法,通过具体实例展示了如何使用partial函数预设部分参数,以及如何在类的方法中使用partial作为回调函数。通过分析代码片段,读者可以了解partial函数在实际编程中的应用技巧。

partial 函数之参数传入

zj@zj-virtual-machine:/tmp$ cat callback.py
#!/usr/bin/env python
# coding=utf-8
from functools import partial
class D(object):
    def __init__(self, num):
        self._num = num

    def add_callback(self, callback):
        self._callback = callback

    def _run_callback(self):
        print("D _run_callback exec")
        self._callback(self._num)

def f1(a, _):
    print('a :  %s'%a)
    print('_ : %s'%_)

d = D(10)
d.add_callback(partial(f1, 99))  #a = 99, _=self._num
d._run_callback()
zj@zj-virtual-machine:/tmp$ python3 -i callback.py
D _run_callback exec
a :  99
_ : 10
>>> f1
<function f1 at 0x7fa7da78de18>
>>> eg = partial(f1, 109)
>>> eg
functools.partial(<function f1 at 0x7fa7da78de18>, 109)
>>> eg
functools.partial(<function f1 at 0x7fa7da78de18>, 109)
>>> eg(233)
a :  109
_ : 233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值