在 python 中编写函数调用后,是否有一些语法机制来编写函数定义?
is there some syntax mechanist to write a function definitions after writing the function call in python?
javascript中的函数提升允许我们做这件事,这对代码可读性来说是很棒的:
function f(a,b){
return divide(a,b)*a
function divide(a,b){
return a/b
}
}
Haskell 允许我们用“where”做这样的事情。 python 是否有任何允许这样做的语法机制?
没有您要查找的吊装类型。
Python 进行一些提升,例如在块中声明的变量(如 for 循环变量)被提升到块所在的范围。
但是您不能在变量(或其他名称,如函数)被赋值或定义之前引用它。
如果你想要这样的代码顺序,这是一种解决方法,但这对可读性几乎没有帮助:
def f(a, b):
def _f():
return divide(a, b)*a
def divide(a, b):
return a / b
return _f()
print(f(10, 5))
}
更一般地说,不要试图将一种语言的约定强加于另一种语言 - 使用具有您喜欢的约定的语言,或者学习您使用的语言的约定。阅读您代码的其他编码人员(包括未来的您)会感谢您。
javascript中的函数提升允许我们做这件事,这对代码可读性来说是很棒的:
function f(a,b){
return divide(a,b)*a
function divide(a,b){
return a/b
}
}
Haskell 允许我们用“where”做这样的事情。 python 是否有任何允许这样做的语法机制?
没有您要查找的吊装类型。
Python 进行一些提升,例如在块中声明的变量(如 for 循环变量)被提升到块所在的范围。
但是您不能在变量(或其他名称,如函数)被赋值或定义之前引用它。
如果你想要这样的代码顺序,这是一种解决方法,但这对可读性几乎没有帮助:
def f(a, b):
def _f():
return divide(a, b)*a
def divide(a, b):
return a / b
return _f()
print(f(10, 5))
}
更一般地说,不要试图将一种语言的约定强加于另一种语言 - 使用具有您喜欢的约定的语言,或者学习您使用的语言的约定。阅读您代码的其他编码人员(包括未来的您)会感谢您。