import argparse
parser = argparse.ArgumentParser(usage="checkupv2 shell_script [-n NUM]")
parser.add_argument("-s","--show",action="store_true",default=False,dest='show')
#parser.add_argument('-f','--foo', action='store_const', const=42)
parser.add_argument('-f','--foo', action='store_const',default=0,const=42) ##有没有default=0 默认为None
args = parser.parse_args()
print(args.show)
print(args.foo)
add_argument的参数action用法
action用法固定,表示在命令行 有-s 代表True值,没有-s表示False
action="store_true",default=False
表示在命令行 有-f 代表42值,没有-f表示None
action='store_const', const=42
action用法为开关作用, 命令行后面不跟参数值, 参数值固定
add_argument的参数nargs用法
nargs - 指定这个参数后面的value有多少个,默认为1
分析:nargs还可以'*'用来表示如果有该位置参数输入的话,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。'?'表示该位置参数要么没有,要么就只要一个。(PS:跟正则表达式的符号用途一致。)
try_raise异常的抛出用法
try: ... except... 为被动的抛出异常
raise 为主动的抛出异常
class aaa(Exception): ##自定义一个异常类
def __init__(self,n):
self.n=n
def __str__(self): ##该 表示print(类)时打印出的信息, 若没有__str__ 则print(类)时打印出实例的内存地址
return '异常:%s'%self.n
def a():
#a=9
#b=a/0
raise aaa('aaa')
#a()
print("-------------------------")
try:
a()
except aaa as e: ###抛出自定义的异常类名称
print("aaa:",e)
except ZeroDivisionError as e:
print("ZeroDivisionError:",e)
except Exception as e:
print("bbb:",e)
得出结果
aaa: 异常:aaa