现在,我正在使用闭包来生成此简化示例中的函数:

def constant_function(constant):
    def dummyfunction(t):
        return constant
    return dummyfunction

然后将这些生成的函数传递到自定义类的初始化方法,该方法将它们存储为实例属性。缺点是使类实例不容易被打扰。所以我想知道是否有一种方法来创建避免关闭的函数生成器。

最佳答案

您可以使用可调用的类:

class ConstantFunction(object):
    def __init__(self, constant):
        self.constant = constant
    def __call__(self, t):
        return self.constant

def constant_function(constant):
    return ConstantFunction(constant)

然后,函数的关闭状态将转移到实例属性。

关于python - 在python中生成不带闭包的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15028782/

10-12 22:43