在操作代码中间定义函数是不是Python中的错误做法?

WoJ*_*WoJ 8 python coding-style function pep

我从一个关于进口的类似问题中了解到,不应该混合"操作代码"和import(它们应该位于顶部).

关于在"操作代码"中定义函数的共识是什么?

我有一个案例,一个函数只在一个地方使用(它必须是一个函数),并且它的定义接近那段代码是有意义的(所有这些都将组合在一起).但它在视觉上打破了代码的流程.

PEP的任何建议?(我找不到任何相关的东西,相反import)

编辑:答案中的明显趋势是它不是一件好事,但与import上面提到的情况不同,没有明确的指令(例如PEP)

bru*_*ers 5

python脚本或模块中的所有代码(基本上是同一件事-区别在于使用方式)都是一种“操作代码”。构造脚本代码的简单方法是将所有内容都包含在函数中-您在“ main()”函数中命名为“操作代码”- 如果模块用作模块,则只需调用该“ main”函数即可。脚本,即:

# mymoduleorscript.py
import something
from somewhere import somethingelse

def somefunc(arg1, arg2):
   # ...

def otherfunc(arga, argb):
   # ...

def main(*args):
   # "operational" code here
   return status_code # 0 if ok, anything else if error

# only call main if used as a script
if __name__ == "__main__":
     import sys
     sys.exit(main(*sys.argv[1:]))
Run Code Online (Sandbox Code Playgroud)

请注意,这不是 “我认为”的答案,而是正式被祝福的OneTrueWay服务。