S. *_*axo 6 python types functional-programming namedtuple
我目前正在构建一个模块化的函数管道来处理Python中的一些数据(2.7).
我坚持一个松散的功能风格,没有任何对象(对于我正在应用它的代码类型和例程,它具有完美的意义,而且到目前为止代码是整洁可读的,设计对象只会使一切变得更加混淆).
为了保持一致,我已经定义了一个自定义的名称元组,带有字段名称等.这个想法是初始函数读取一些数据文件并返回其中一个特殊定义的元组.以下函数将读取它,使用数据字段并返回一个新的元组(因为它们是不可变的)和更改.但是,我似乎无法避免必须执行导入集合并重新定义自定义类型 - 请参阅代码示例.
import collections
def NewFunction(MyCustomType):
a = ...
b = ...
MyCustomType = collections.namedtuple('MyCustomType', 'a, b')
return MyCustomType(a, b)
Run Code Online (Sandbox Code Playgroud)
它并没有真正引起问题,但我很好奇,好像没有更多的"全球"方式来做这件事而没有那么多的重复.如果有,是不是我做的更多"副作用免费"又称功能?(对不起,这里实际上有两个问题:第一个是实际的封闭式python问题,第二个是更开放/哲学的问题.)
提前致谢!
Mar*_*ers 12
该namedtuple()功能基本上是一个类工厂.在模块级别构建该类一次:
import collections
MyCustomType = collections.namedtuple('MyCustomType', 'a, b')
Run Code Online (Sandbox Code Playgroud)
然后改为导入MyCustomType到处.它只是一个类,每次要构建元组时都不必重新创建该类.
import somemodule
def NewFunction(param):
a = ...
b = ...
return somemodule.MyCustomType(a, b)
Run Code Online (Sandbox Code Playgroud)