Python 条件语句的sys.argv表示法

Python 条件语句的sys.argv表示法,python,args,sys,Python,Args,Sys,我的功能设置如下: args = sys.argv[1:] if args: if args[0] in Constants.envs.keys(): environment = Constants.envs[args[0]] 但我觉得这看起来不太干净。有没有更好的方法来检查参数,如果参数有效,则为其设置一个变量?为什么不将这两个if语句组合起来 args = sys.argv[1:] if args and args[0] in Constants.envs:

我的功能设置如下:

args = sys.argv[1:]
if args:
    if args[0] in Constants.envs.keys():
        environment = Constants.envs[args[0]]

但我觉得这看起来不太干净。有没有更好的方法来检查参数,如果参数有效,则为其设置一个变量?

为什么不将这两个
if
语句组合起来

args = sys.argv[1:]
if args and args[0] in Constants.envs:
    environment = Constants.envs[args[0]]
您还可以使用dict的
get
方法,如果缺少键,该方法将返回默认值。这意味着您不必在Constants.envs.keys()中检查参数[0]


为什么不把这两个
if
语句组合起来呢

args = sys.argv[1:]
if args and args[0] in Constants.envs:
    environment = Constants.envs[args[0]]
您还可以使用dict的
get
方法,如果缺少键,该方法将返回默认值。这意味着您不必在Constants.envs.keys()中检查参数[0]


由于python语句是惰性的,您可以将两个
if
语句组合在一起:
如果Contants.env.keys()中的args和len(args)>0和args[0]:
@Tyler:真正需要的是
如果Contants:
中的args和args[0]。因为python语句是惰性的,您可以组合两个
if
语句:
if args和len(args)>0和args[0]在Contants.env.keys()中:
@Tyler:真正需要的是
if args和args[0]在Contants:
中。您还可以删除
args
变量。所以它将如下:
如果sys.argv[1]:environment=Constants.envs.get(sys.argv[1],None)
@Rob,你说得对。条件不正确。如果len(sys.argv)>1,它应该是
,您也可以删除
args
变量。所以它将如下:
如果sys.argv[1]:environment=Constants.envs.get(sys.argv[1],None)
@Rob,你说得对。条件不正确。如果len(sys.argv)>1,则应为