编程语言
首页 > 编程语言> > python-调用另一个函数后立即从函数返回

python-调用另一个函数后立即从函数返回

作者:互联网

函数calculate_attribute不返回值;它只能通过副作用起作用.

通常在该函数中,我必须写以下几行:

print('some message')
set_attribute(value)
return

因此,我决定将其放入另一个函数中:

def report_and_set(value, message):
  print(message)
  set_attribute(value)

现在可以执行以下操作吗?

   def calculate_attribute(params):
     #...
     if something:
       return report_and_set(value, message)
     #...
     if another_condition:
       return report_and_set(value, message)
     #...     

写这个感觉有点奇怪,因为report_and_set没有返回值.但是,如果我不这样做,则必须在每次调用report_and_set之后重复键入return.

解决方法:

许多程序员(包括我自己)为prefer a single return per function.

有时,如果某些健全性检查失败,我可能会在函数的前几行插入一个返回值以保释.

我不会在这种情况下.

在这种情况下,我只会…

   def calculate_attribute(params):
     #...
     if something:
       report_and_set(value, message)
     #...
     elif another_condition:
       report_and_set(value, message)
     #...     

但还要考虑Single Responsibility Principle(它同样适用于函数和类).如果您的函数很长,并且包含许多条件函数调用,
现在可能是到refactor的时候了!

标签:return-value,coding-style,python
来源: https://codeday.me/bug/20191201/2083344.html