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