【发布时间】:2016-01-06 12:38:31
【问题描述】:
假设我有一个 python 模块,它有很多相互依赖的函数,处理彼此的结果。有很多凝聚力。
这意味着我将来回传递很多参数。要么这样,要么我会使用全局变量。
在这种情况下,处理这种情况的最佳做法是什么?想到的事情是用字典替换这些参数。但我不一定喜欢它如何将函数签名更改为不太具有表现力的东西。或者我可以将所有内容包装到一个类中。但这感觉就像我在作弊并使用“伪”全局变量?
我专门询问如何在 Python 中处理这个问题,但我知道其中许多内容也适用于其他语言。
我没有具体的代码示例,这只是我在考虑这个问题时想到的。
示例可能是:您有一个计算某些东西的函数。在这个过程中,计算了很多辅助的东西。您的处理例程需要访问这些辅助内容,而您不想只是重新计算它。
【问题讨论】:
-
当你需要传递很多变量时,你的函数不够具体。重新设计你的功能。
-
如果你真的想要有用的建议,你应该展示一些代码。至少有几个函数的签名。避免问题的正确方法,甚至是试图避免问题的合法性在很大程度上取决于您传递的数据的含义和语义。
-
你想多了。一个类是正确的方法。一个类无论如何都不是“全局的”。实例化类的每个对象都有自己的一组属性,因此它们本质上是对象的本地属性。
标签: python arguments global-variables parameter-passing