使用参数运行模块

时间:2018-11-18 19:06:55

标签: python

我正在做一些Python练习练习,我发现了一个要求创建具有各种功能的Python模块的练习。我创建了一个Python包并实现了这些功能。到目前为止,一切都很好,但是要求是,如果使用参数“ -h”调用模块,则将显示消息“ Help”,如果正在导入模块,则不会显示任何内容。我们该怎么做,是否有任何默认功能需要覆盖?我不确定如何调用模块,我想我们只是使用一个包来更好地封装我们的方法

非常感谢,很抱歉成为菜鸟

2 个答案:

答案 0 :(得分:2)

Python是一种解释型语言,它只是从顶级源代码no main函数开始的,您可能已经在其他语言中看到过。要导入的文件的写入方式完全相同。函数外部的所有代码都将执行。

例如
myscript.py

def fn(a, b):
  return a+b

print(fn(1, 1))

这是一个完全正常运行的程序,打印出答案为1 + 1。但是,如果您要导入它以在另一个脚本中使用fn函数怎么办?进行import myscript将打印2(然后最终为您提供fn函数)。解决方法是检查__name__ == '__main__':内的myscript.py,仅在执行该代码时(例如python myscript.py),它的值为true。否则将为假(import myscript)。

请参阅相关的Q&A

答案 1 :(得分:0)

参考: https://docs.python.org/2/howto/argparse.html

$ cat sample.py

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--foo", help="sample argument", action="store", dest='foo')

args = parser.parse_args()
if args.foo:
  print("foo = {}".format(args.foo))

$ python sample.py --help

$ python sample.py --help
usage: sample.py [-h] [--foo FOO]

optional arguments:
  -h, --help  show this help message and exit
  --foo FOO   sample argument
$

$ python sample.py --foo参数值

$ python sample.py --foo bar
foo = bar
$ python sample.py --foo=10
foo = 10
$