如何根据另一个参数使参数可选';在Python中使用click?

如何根据另一个参数使参数可选';在Python中使用click?,python,python-click,Python,Python Click,我使用python中的clickmodule创建了以下CLI方法 import click @click.command() @click.argument("name") @click.option("--provider", "-p", default="aws", help="Cloud Provider") @click.argument("view", required=True) def create(name, view, provider): print name

我使用python中的
click
module创建了以下CLI方法

import click

@click.command()
@click.argument("name")
@click.option("--provider", "-p", default="aws", help="Cloud Provider")
@click.argument("view", required=True)

def create(name, view, provider):
   print name
   print view
   print provider

if __name__ == '__main__':
    create()

我想根据为
--provider
获取的值来操作
视图
选项。例如,如果
--provider
aws
,那么
视图的
必需=True
否则
必需=False
在运行我的代码时使
视图
可选。

不需要任何花哨的东西,类似的东西可以工作

def create(name, provider, view=None):
    if provider == "aws" and view is None:
        raise AttributeError("View is required when provider is 'aws'")

或者您可以使用
单击。退出(“某些适当的消息”)
而不是异常。当我尝试此操作时,我得到了一个语法错误:
def create(name,view=None,provider):语法错误:默认参数后面是非默认参数
@ANIL请确保
view=None
是参数列表中的最后一项。