在python中生成没有闭包的函数

现在我正在使用闭包来生成像这个简化示例中的函数
def constant_function(constant):
    def dummyfunction(t):
        return constant
    return dummyfunction

然后将这些生成函数传递给自定义类的init方法,该类将它们存储为实例属性.缺点是这使得类实例难以理解.所以我想知道是否有办法创建函数生成器来避免闭包.

解决方法

你可以使用一个调用的类:
class ConstantFunction(object):
    def __init__(self,constant):
        self.constant = constant
    def __call__(self,t):
        return self.constant

def constant_function(constant):
    return ConstantFunction(constant)

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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...