【问题标题】:programming workflow : which one ? passing argument from function to function or passing the output as argument to other function?编程工作流程:哪一个?将参数从函数传递到函数或将输出作为参数传递给其他函数?
【发布时间】:2012-05-01 15:40:18
【问题描述】:

我正在寻找这些选项工作流程的比较(如下 #1 和 #2)。 所以我正在使用调用另一个 x() 函数的函数 xx()。这是通用的编程工作流程(代码是 python 语法,但流程逻辑可以适用于任何其他语言)。

所以选项#1 显示了我必须将参数从一个函数传递给另一个函数的工作流程,而在#2 中我不必传递所有参数,只需将第一个函数的输出作为参数传递给第二个函数。

选项#1:

def x(a):
    <code>
    return  value

def xx(a):
    x=x(a)
    <code>
    return value

print xx(a)

选项#2:

def x(a):
    <code>
    return  value

def xx(x):
    <code>
    return value

x=x(a)
print xx(x)

这只是一个简单的例子。到目前为止,我在选项#1 中发现传递给 x() 的每个参数也必须传递给 xx()。传递大量参数时的示例(这是我不使用 * 或 ** 传递多个参数的基本示例):

选项#1

def x(a1,a2,….a100):
    <code>
    return value

def xx(b1,b2,…..b100):
    x=x(b1,b2,….b100)
    <code>
    return value

print xx(45,'test',....,999)

选项#2

def x(a1,a2,….a100):
    <code>
    return value

def xx(x):
    <code>
    return value

x=x(45,'test',....,999)
print xx(x)

在 #1 中,我必须做很多“打字”来输入要传入 def xx() 的参数,另一方面,#2 更干净,更易于调试。那么你们对这些工作流程有什么看法?工作流#1 有什么优势吗? #2通常更好吗?你怎么看?选择 #1 或 #2 的原因是什么。

【问题讨论】:

  • 答案当然是使用 OOP。
  • thanx ,我已经修改了代码,所以它不是 oop 样式。前面的例子可能不是正确的。我让它更通用。

标签: python function workflow arguments


【解决方案1】:

select_color_from_obj 似乎是一个不必要的功能。你可以打电话

get_obj().color()

另外,如果get_obj() 与其他代码在同一范围内,您可以直接使用

obj.color()

但是,如果obj 的定义出现在不同的文件中,那么get_obj 可能会有用。

【讨论】:

  • 您好,thanx 回答了我的问题,是的,但这不是我要找的:),我正在寻找两个工作流程的比较。尝试另一个更通用的示例:
  • 我不太确定这些工作流试图完成什么。您是否尝试在 OO 之上构建另一层抽象?这些方案添加了哪些公共方法接口中没有的组织?也许更详细的用法可能更有洞察力。
  • 对不起,我可能在我的第一篇文章中发布了不正确的示例......所以我刚刚修改了这个问题更具体。如果你有时间,你可以重新审查它。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多