named在多个链接函数之间耦合定义



我目前正在构建一个模块化的函数管道,以处理Python(2.7)中的一些数据。

我坚持一种松散的功能风格,没有任何对象(对于我应用的代码类型和例程来说,它非常有意义,而且到目前为止代码整洁可读,设计对象只会让一切变得更加模糊)。

为了保持一致,我定义了一个自定义的名称元组,带有字段名等。其思想是,初始函数读取一些数据文件,并返回其中一个特殊定义的元组。以下函数将读取它,处理数据字段,并返回一个新的元组(因为它们是不可变的)。然而,我似乎无法避免必须进行导入集合并重新定义自定义类型——请参阅代码示例。

import collections
def NewFunction(MyCustomType):
    a = ...
    b = ...
    MyCustomType = collections.namedtuple('MyCustomType', 'a, b')
    return MyCustomType(a, b)

这并没有真正造成问题,但我很好奇,似乎没有一种更"全球性"的方法可以做到这一点而不重复这么多。如果有的话,我做更多"无副作用"的方式不就是功能性的吗??(很抱歉这里有两个问题:第一个是实用的封闭python问题,第二个是更开放/哲学的问题。)

提前感谢!

namedtuple()函数基本上是一个类工厂。在模块级别构建一次

import collections
MyCustomType = collections.namedtuple('MyCustomType', 'a, b')

则将CCD_ 2导入所有位置,而不是。它只是一个类,不必每次构建元组时都重新创建该类。

import somemodule
def NewFunction(param):
    a = ...
    b = ...
    return somemodule.MyCustomType(a, b)

最新更新