编程工作流程:哪一个?将参数从函数传递给函数或将输出作为参数传递给其他函数?

时间:2012-05-01 15:40:18

标签: python function workflow arguments

我正在寻找这些选项工作流程的比较(#1和#2如下)。 所以我正在使用函数xx()调用另一个x()函数。这是通用编程工作流程(代码是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的理由是什么。

1 个答案:

答案 0 :(得分:3)

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

get_obj().color()

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

访问该对象
obj.color()

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