python 成员函数 泛型函数_python – 从泛型函数定义函数列表

说我有一个功能

def my_meta_function (a, b, c):

pass

我想定义一个函数数组myfunctions = [f1,f2,f3,… f100],其中参数c固定为每个这样的函数的不同值,例如: c = [1,2,3,.. 100],函数只接受参数a和b.在实践中,我正在考虑的论点更复杂,但我试图理解如何在语言中这样做.

>这种类型的元编程有名字吗?

>装饰者是否适合这个?如果没有,为什么?

解决方法:

>>> from functools import partial

def func(a, b, c):

... print a, b, c

...

>>> funcs = [partial(func, c=i) for i in xrange(5)]

>>> funcs[0](1, 2)

1 2 0

>>> funcs[1](1, 2)

1 2 1

>>> funcs[2](1, 2)

1 2 2

出于学习目的,您也可以使用lambda:

>>> funcs = [lambda a, b, i=i:func(a, b, c=i) for i in xrange(5)]

>>> funcs[0](1, 2)

1 2 0

>>> funcs[1](1, 2)

1 2 1

但你不应该使用它,为什么?:

标签:python,decorator,metaprogramming

来源: https://codeday.me/bug/20190722/1508155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值