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