我无法理解Python中的函数比较

时间:2014-08-06 09:54:14

标签: python function comparison

我正在使用Canopy IDE。我是Python的初学者。我正在参加edX在线课程,我偶然发现了这段代码:

def a(x,y,z):
    if x:
       return y
    else:
       return z
def b(p,r):
    return a(p>r,p,r)
print a(3>2,a,b)

我无法理解语句a(3>2,a,b)的工作原理。本质上,函数比较如何在python中工作。当我在IDE中执行代码时,它给出了以下输出。

<function a at 0x00000000088F4198>

1 个答案:

答案 0 :(得分:0)

您的电话:

a(3>2, a, b)

导致返回参数'a'。参数a是用于执行比较的函数:

def a(x,y,z):
    if x:
       return y
    else:
       return z

函数的默认字符串表示形式为:

<function (name) at 0x(address in memory)>

尝试使用不同的参数运行函数a(),例如

 a(3>2, "Greater", "Smaller")

或者使用Python三元运算符:

result = "Greater" if 3 > 2 else "Smaller"