这可能是一个直截了当的不明智的主意,因此我最好解释一下上下文。我发现我的某些函数具有多个,有时互斥或相互依赖的关键字参数-即,它们使用户能够输入某些数据,例如(例如)一个numpy数组或一个数据框。然后,如果是numpy数组,则可以单独传递索引,但是如果它是数据帧,则不能传递索引。
这使我想知道是否值得创建某种关键字解析器功能来处理这些排他性/依赖性。这样做的一个问题是关键字解析器函数随后需要将创建的任何变量(事前,我们都不知道它们的编号或名称)返回到调用它的函数的名称空间中。我不确定是否有可能,至少以合理的方式(我想可以通过直接更改本地命令来实现,但这有时是个坏主意)。
所以我的问题是: 首先,这是一个坏主意吗?根据输入是数据帧还是ndarray创建单独的函数会更明智和更简单吗? 2.是否可以让函数将未指定数量的变量返回到本地名称空间而无需过多的黑客干预?
对于这个问题的含糊性表示歉意,但很高兴收到任何想法。
答案 0 :(得分:0)
dict是打包可变数量的命名值的好方法。如果解析器返回一个dict,则可以查询一个对象以获取这些名称和值,从而避免了需要提前知道编号和名称的问题。
另一种可能性是将解析器作为工厂方法(返回实例的classmethod或staticmethod)或作为常规方法(在__init__
期间或之后调用)放入类中,其中类实例保存已解析的值