以这种方式获取命令行参数有什么本质上的错误吗?我的意思是把参数解析放入它自己的函数中。它会被认为是非 Pythonic 或更严重吗?
#!/usr/bin/python
import argparse
def getArgs(argv=None):
parser = argparse.ArgumentParser(description="calculate X to the power of Y")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
return parser.parse_args(argv)
if __name__ == "__main__":
argvals = None # init argv in case not testing
argvals = '6 2 -v'.split() # example of passing test params to parser
args = getArgs(argvals)
answer = args.x**args.y
if args.quiet:
print answer
elif args.verbose:
print "{} to the power {} equals {}".format(args.x, args.y, answer)
else:
print "{}^{} == {}".format(args.x, args.y, answer)
看起来不错,感觉不错,符合蟒蛇禅 http://legacy.python.org/dev/peps/pep-0020/- 那么,如果你没有看到,那有什么问题呢?这个特定的代码像那样?
将某种程度独立的功能转移到子例程中是重要的良好实践 - 的体现关注点分离 https://en.wikipedia.org/wiki/Separation_of_concerns,准确地说。这甚至与 Python 无关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)