Python return语句

时间:2020-02-23 14:43:14  来源:igfitidea点击:

python return语句用于从函数返回值。
我们只能在函数中使用return语句。
不能在Python函数之外使用。

没有return语句的Python函数

Python中的每个函数都会返回一些信息。
如果该函数没有任何return语句,则它将返回" None"。

def print_something(s):
  print('Printing::', s)

output = print_something('Hi')

print(f'A function without return statement returns {output}')

Python Return语句示例

我们可以在函数中执行某些操作,然后使用return语句将结果返回给调用方。

def add(x, y):
  result = x + y
  return result

output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

带有表达式的Python return语句

我们也可以在return语句中使用表达式。
在这种情况下,将对表达式求值并返回结果。

def add(x, y):
  return x + y

output = add(5, 4)
print(f'Output of add(5, 4) function is {output}')

Python返回布尔值

让我们看一个示例,在该示例中我们将返回函数参数的布尔值。
我们将使用bool()函数来获取对象的布尔值。

def bool_value(x):
  return bool(x)

print(f'Boolean value returned by bool_value(False) is {bool_value(False)}')
print(f'Boolean value returned by bool_value(True) is {bool_value(True)}')
print(f'Boolean value returned by bool_value("Python") is {bool_value("Python")}')

Python返回字符串

让我们看一个示例,其中我们的函数将返回参数的字符串表示形式。
我们可以使用str()函数来获取对象的字符串表示形式。

def str_value(s):
  return str(s)

print(f'String value returned by str_value(False) is {str_value(False)}')
print(f'String value returned by str_value(True) is {str_value(True)}')
print(f'String value returned by str_value(10) is {str_value(10)}')

Python返回元组

有时我们想将多个变量转换为元组。
让我们看看如何编写函数以从可变数量的参数返回元组。

def create_tuple(*args):
  my_list = []
  for arg in args:
      my_list.append(arg * 10)
  return tuple(my_list)

t = create_tuple(1, 2, 3)
print(f'Tuple returned by create_tuple(1,2,3) is {t}')

Python函数返回另一个函数

我们也可以从return语句返回一个函数。
这类似于Currying,它是将对带有多个参数的函数的求值转换成对一系列函数的求值的技术,每个函数都有一个参数。

def get_cuboid_volume(h):
  def volume(l, b):
      return l * b * h

  return volume

volume_height_10 = get_cuboid_volume(10)
cuboid_volume = volume_height_10(5, 4)
print(f'Cuboid(5, 4, 10) volume is {cuboid_volume}')

cuboid_volume = volume_height_10(2, 4)
print(f'Cuboid(2, 4, 10) volume is {cuboid_volume}')

Python函数返回外部函数

我们还可以使用return语句返回在函数外部定义的函数。

def outer(x):
  return x * 10

def my_func():
  return outer

output_function = my_func()
print(type(output_function))

output = output_function(5)
print(f'Output is {output}')

Python返回多个值

如果要从一个函数返回多个值,则可以根据需要返回元组,列表或者字典对象。

但是,如果必须返回大量值,那么使用序列会占用太多资源。
在这种情况下,我们可以使用yield来一次返回多个值。

def multiply_by_five(*args):
  for arg in args:
      yield arg * 5

a = multiply_by_five(4, 5, 6, 8)

print(a)
# showing the values
for i in a:
  print(i)