0

我正在寻找这些选项工作流程的比较(如下#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 的理由是什么。

4

1 回答 1

3

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

get_obj().color()

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

obj.color()

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

于 2012-05-02T06:09:46.167 回答