Python:如何动态创建参数化的自治/ lambda函数?

时间:2017-10-14 23:18:54

标签: python lambda

我需要创建一个参数化另一个函数的函数,其中一些参数是显式设置的,而其他函数只在调用该函数期间设置。 (我试图在传达我的问题的一般说明的同时尽可能简洁地提出问题)这是我想要实现的目标的简要实现。

class registration():
   #...
   def register(self, func, **kwargs):
     # ... append spec to internal dict

class spec():
     def __init__(self, func, **kwargs):
        self.func = func
        self.args = **kwargs

     def __call__(self, *args):
        # should call func with the 

reg = registration()
def register(func, **kwargs)
    reg.register(func, **kwargs)

def func (**kwargs):
    for i in range(kwargs['param2'])
        print(kwargs[])
        print(kwargs['param3']['something'])

def func2 (**kwargs):
    if kwargs['param3']:
       print(kwargs['param1'])
    else:
       print(kwargs['param2'])


 register(func, param1 = "answer:", param2 = lambda x: x ** 0, param3 = {"something": lambda x: x * 8})

 # spec[0](111,8) -> answer: 1 64

 register(func2, param1= "hello", param2 = "goodbye", param3= x: if x >=0: return True; else: return False; ) 

 # spec[1](1) -> hello

我的问题是如何有效地实现关于在spec类的调用中映射/输入args以及如上所示的参数的功能,而不管它们在寄存器函数中的位置如何。当如上所示实现多个注册时,这尤其重要。

我怎样才能最有效地实现传递参数的过程,如functools.partial,但是有多种不同的安排?

0 个答案:

没有答案