在 Python 函数 returns 中使用括号的最佳实践?
Best practice for using parentheses in Python function returns?
我正在学习 Python,到目前为止,我非常喜欢它。关于它的一切。
我只有一个关于函数 return 中看似不一致的问题,我有兴趣了解规则背后的逻辑。
如果我 return 在函数 return 中输入文字或变量,则不需要括号:
def fun_with_functions(a, b):
total = a + b
return total
但是,当我 returning 另一个函数调用的结果时,该函数包含在一组括号中。即:
def lets_have_fun():
return(fun_with_functions(42, 9000))
至少,这是我被教导的方式,使用 A Smarter Way to Learn Python book. I came across this discrepancy and it was given without an explanation. You can see the online exercise here(跳到练习 10)。
有人可以向我解释为什么这是必要的吗?甚至有必要吗?还有我应该注意的括号语法的其他类似变化吗?
编辑:我改写了问题的标题以反映答复。返回括号内的结果不是强制性的,正如我最初认为的那样,但它通常被认为是最佳实践,正如我现在了解到的那样。
我认为这不是强制性的。在 python2 和 python3 中都尝试过,并且在 lets_have_fun()
return 子句中没有括号定义的无函数工作得很好。所以正如jack6e所说,只是一种偏好。
如果你
return ("something,) # , is important, the ( ) are optional, thx @roganjosh
你正在返回一个元组。
如果您要返回
return someFunction(4,9)
或
return (someFunction(4,9))
没有区别。要进行测试,请使用:
def f(i,g):
return i * g
def r():
return f(4,6)
def q():
return (f(4,6))
print (type(r()))
print (type(q()))
输出:
<type 'int'>
<type 'int'>
没必要。使用括号有多种原因,其中一个原因是代码风格:
example = some_really_long_function_name() or another_really_function_name()
所以你可以使用:
example = (some_really_long_function_name()
or
another_really_function_name())
它的另一种用法就像在数学中一样,强制先于求值。所以你要确保之前括号之间的执行。我想函数 return 是另一个函数的结果,确保第一个函数的执行只是最佳实践,但没有必要。
我正在学习 Python,到目前为止,我非常喜欢它。关于它的一切。
我只有一个关于函数 return 中看似不一致的问题,我有兴趣了解规则背后的逻辑。
如果我 return 在函数 return 中输入文字或变量,则不需要括号:
def fun_with_functions(a, b):
total = a + b
return total
但是,当我 returning 另一个函数调用的结果时,该函数包含在一组括号中。即:
def lets_have_fun():
return(fun_with_functions(42, 9000))
至少,这是我被教导的方式,使用 A Smarter Way to Learn Python book. I came across this discrepancy and it was given without an explanation. You can see the online exercise here(跳到练习 10)。
有人可以向我解释为什么这是必要的吗?甚至有必要吗?还有我应该注意的括号语法的其他类似变化吗?
编辑:我改写了问题的标题以反映答复。返回括号内的结果不是强制性的,正如我最初认为的那样,但它通常被认为是最佳实践,正如我现在了解到的那样。
我认为这不是强制性的。在 python2 和 python3 中都尝试过,并且在 lets_have_fun()
return 子句中没有括号定义的无函数工作得很好。所以正如jack6e所说,只是一种偏好。
如果你
return ("something,) # , is important, the ( ) are optional, thx @roganjosh
你正在返回一个元组。
如果您要返回
return someFunction(4,9)
或
return (someFunction(4,9))
没有区别。要进行测试,请使用:
def f(i,g):
return i * g
def r():
return f(4,6)
def q():
return (f(4,6))
print (type(r()))
print (type(q()))
输出:
<type 'int'>
<type 'int'>
没必要。使用括号有多种原因,其中一个原因是代码风格:
example = some_really_long_function_name() or another_really_function_name()
所以你可以使用:
example = (some_really_long_function_name()
or
another_really_function_name())
它的另一种用法就像在数学中一样,强制先于求值。所以你要确保之前括号之间的执行。我想函数 return 是另一个函数的结果,确保第一个函数的执行只是最佳实践,但没有必要。