根据Python3中的值传递可选参数

姜黄

我有一个可以为None或String的参数。如果它为None,则我不能将其作为参数传递,因为该库不支持None值或空字符串。该库也不接受字典作为输入。另一方面,我真的不想写出这么恐怖的替代品!

if lifecycle_policy_name:
    response = client.create_notebook_instance(
        NotebookInstanceName=NotebookInstanceName,
        InstanceType=InstanceType,
        SubnetId=SubnetId,
        SecurityGroupIds=SecurityGroupIds,
        RoleArn=RoleArn,
        Tags=Tags,
        DirectInternetAccess='Disabled',
        VolumeSizeInGB=10,
        RootAccess='Disabled',
        KmsKeyId=kms_key.get('KeyId'),
        LifecycleConfigName=lifecycle_policy_name
    )
else:
    response = client.create_notebook_instance(
        NotebookInstanceName=NotebookInstanceName,
        InstanceType=InstanceType,
        SubnetId=SubnetId,
        SecurityGroupIds=SecurityGroupIds,
        RoleArn=RoleArn,
        Tags=Tags,
        DirectInternetAccess='Disabled',
        VolumeSizeInGB=10,
        RootAccess='Disabled',
        KmsKeyId=kms_key.get('KeyId'),
    )

因此,您可以猜测,这就是所谓的Boto3 API。

L3viathan:

您可以尝试使用关键字参数扩展:

kwargs = dict(
    NotebookInstanceName=NotebookInstanceName,
    InstanceType=InstanceType,
    SubnetId=SubnetId,
    SecurityGroupIds=SecurityGroupIds,
    RoleArn=RoleArn,
    Tags=Tags,
    DirectInternetAccess='Disabled',
    VolumeSizeInGB=10,
    RootAccess='Disabled',
    KmsKeyId=kms_key.get('KeyId'),
)

if lifecycle_policy_name:
    kwargs["LifecycleConfigName"] = lifecycle_policy_name
response = client.create_notebook_instance(
    **kwargs
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章