# @Author:hyt
# @Time:2021/10/28 20:21
'''测试 parser 参数 action 的作用
https://blog.youkuaiyun.com/liuweiyuxiang/article/details/82918911?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163542281916780265497617%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163542281916780265497617&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-82918911.pc_search_all_es&utm_term=argument%E7%9A%84action&spm=1018.2226.3001.4187
'''
import argparse
parser = argparse.ArgumentParser(description='测试action')
parser.add_argument('--a',action='store_true',default=True)
parser.add_argument('-b',action='store_true')
parser.add_argument('--c',action='store_false',default=True)
parser.add_argument('-d','--e',action='store_true') # 这里的d已经不是Namespace里面的了,e的地位和abc的地位相同,d可以用来标注不同的action
def main():
arg = parser.parse_args()
if(arg.a):
print('a使用action输出')
else: # 因为arg.a怎么都是true,所以这一步就不可能执行
print('a使用default输出') # 如果不定义,fefault默认是和 action 相反的,如果定义了就使用定义的值,可能和action的值相同
if(arg.b): # 调用了某一个参数,就相当于令某个参数为action对应的值
print('b使用action输出')
if not arg.b:
print('b使用default输出')
if (arg.e):
print('action对e起作用')
else:
print('default对d起作用')
if __name__ == '__main__':
main()
argparse-action
最新推荐文章于 2024-07-24 18:31:36 发布