好吧,假设我有这部分代码(它并不完美)。我想要这个场景-我在__init__
中检测云名称作为参数,所以所有其他模块和脚本都将在该云上运行,或者如果我想要从终端运行特定的python文件,我可以检测我想要在其上像这样运行的云python my_script.py cloud1
什么是最好的方法?
当我从带有参数的终端运行它时,下面的脚本确实起作用,但是如果不是这样,它就会出现这个错误
usage: To check what is the cloud name config_parser.py: error: too few arguments'
这是密码
class CredentialsCP:
def __init__(self, cloud_name=None):
self.config = ConfigParser.ConfigParser()
self.cloud_name = cloud_name
self.config_file_pass = os.path.expanduser('~/PycharmProjects/ui/config.cfg')
self.parser = ArgumentParser(usage='To check what is the cloud name')
self.parser.add_argument('cloud')
self.args = self.parser.parse_args()
if self.args:
self.cloud_name = self.args.cloud
if self.cloud_name is None:
self.cloud_name = 'cloud1'
我有一个函数,它显示了云的url,它是如何被调用的
ArgumentParser
提供了可选参数,但位置(非标志)参数的默认值是必需。在这里您可以使用:可能的改进:
在这段代码中,
parser
和args
是类的成员属性。如果它们不在__init__
方法之外使用,它们可能只是局部变量:对于只标识一个可选参数,
argparse
可能有些过分sys.argv
就足够了:相关问题 更多 >
编程相关推荐