我创建了一个名为 Engine 的命名元组,它包含我想在程序中传递的大部分信息。在这个元组内部,有几个参数和两个实例化的类,它们被下游的方法使用。
Engine = namedtuple('Engine', 'website, browser, s, e')
engine = Engine(website, browser, s(), e())
我有一个函数,download(engine)
我传入engine
。download
传递中的子函数engine
——其中一些使用website
,一些使用browser
,一些使用s
,还有一些使用e
。
现在,(作为程序员的我)的认知开销大大降低,我不再需要确保参数列表在可能发生的特定更改的下游和上游都是最新的——我只是通过engine
下游,如果我在方法中使用参数,我使用engine.foo
.
另一方面,感觉这是一种“懒惰”的编程——只是将所有内容包装到一个引擎“类”中,并将变量作为类上的方法似乎让一切都变得太容易了。此外,我发誓在这个实现中我没有看到某种开销。这是否有任何先例,因为它感觉太有用而无法忽视。
我应该在整个程序中使用 namedtuples 作为参数的替代品以减少传递的参数数量吗?