【发布时间】:2020-06-13 03:23:34
【问题描述】:
通常我需要让函数 OR 方法返回不同数量或类型的值。 例如:
def test(x,y,ret='both') :
s = x + y
m = x * y
if ret = 'both' : return s, m
if ret = 'sum' : return s
if ret = 'mult' : return m
有时我希望在注入调试代码时具有 Aspect 类型行为,这也可能会更改返回类型/num-of-vals
是否有处理此问题的标准编程模式?装饰师?
示例工作但有点笨重..
这只是一个例子......为了说明,不要把它当作规范的方法
【问题讨论】:
-
a
staticmethod可能是解决此问题的最佳方法,请参阅 link -
因此,Python 函数只能返回一个值。在您的情况下,该值可能是一个 container,例如
tuple。但它只是一个单一的值。一般来说,我会说具有多种不同返回类型的函数是一种反模式,并且没有标准的方法来处理它。 -
@FishingCode 这有什么关系?这是一个函数,而不是一个方法。
-
如果 OP 要注入代码,为什么
tuple会有用?tuple是不可变的... -
@sten 你找到其他方法了吗?
标签: python design-patterns return