Python “函数内部”;更大的();,它返回了一个值——a或b。那么,为什么还需要;return";s在“之前”;更大的();函数中的“s”;中位数();?
在函数“biger()”中,它返回了一个值——a或b。 那么,为什么在函数“median()”中的“biger()”之前还需要“return”呢? 代码如下:Python “函数内部”;更大的();,它返回了一个值——a或b。那么,为什么还需要;return";s在“之前”;更大的();函数中的“s”;中位数();?,python,return,Python,Return,在函数“biger()”中,它返回了一个值——a或b。 那么,为什么在函数“median()”中的“biger()”之前还需要“return”呢? 代码如下: def bigger(a,b): if a > b: return a else: return b def biggest(a,b,c): return bigger(a,bigger(b,c)) def median(a,b,c): if a == big
def bigger(a,b):
if a > b:
return a
else:
return b
def biggest(a,b,c):
return bigger(a,bigger(b,c))
def median(a,b,c):
if a == biggest(a,b,c):
return bigger(b,c) #the function "bigger()" above has returned a value,
#so, why still need a 'return' before bigger(b,c)?
elif b == biggest(a,b,c):
return bigger(a,c)
else:
return bigger(a,b)
函数调用是一个表达式。考虑以下事项:
def add(a, b):
a + b
x = add(3, 5)
您是否希望x
现在具有值8
?您不应该这样做,因为add
没有返回表达式a+b
的值。正确的定义是
def add(a, b):
return a+b
现在考虑这个函数:
def backwards_add(a, b):
add(b, a)
x = backwards_add(3, 5)
同样,您是否希望x
的值为8
?同样,您不应该这样做,因为backwards\u add
没有返回表达式add(b,a)
的值。正确的定义是
def backwards_add(a, b):
return add(b, a)
有些语言隐式返回函数中执行的最后一个表达式的值(参见Perl)
),但Python不是这些语言之一。您必须显式返回一个值,否则它将为您返回
None
。我将尝试用示例进行解释,可能更简单一些
您已经定义了biger
函数,它返回一个值,对吗
def bigger(a,b):
if a > b:
return a
else:
return b
现在,您已经定义了一个最大的
函数,并且正在从该函数调用更大的
def biggest(a,b,c):
return bigger(a,bigger(b,c))
现在想象一下,你可以用biger
返回的值做成千上万的事情
您可以使用biger
函数中任何位置的返回值。例如:
def biggest(a,b,c):
some_var = bigger(a,bigger(b,c))
return some_var + 10
或
但是,当您希望在调用
最大值
的函数中使用从biger
返回的值时,您应该再次返回该值,以便最大值
的调用方获得该值。否则,它将得到None
,这基本上告诉调用者“没有返回值”。因为每个函数都将值返回给调用者。调用者可以随意使用该值执行任何操作,包括将其返回给调用者。
def biggest(a,b,c):
some_var = bigger(a,bigger(b,c))
return some_var + 10
def biggest(a,b,c):
list_of_values = []
list_of_values.append(bigger(a,bigger(b,c)))