如何跳过空关键字参数

时间:2017-04-01 10:08:33

标签: python python-2.7

有没有更好的方法来避免冗余代码?在这种情况下,如果storage为0,那么我不想将它传递给函数并保持代码整洁,但我不得不做一个if-else。

if storage == 0:
    response_lc = asg_client.create_launch_configuration(
        ImageId=ami,
        InstanceType=instance_type,
        KeyName=keypair
    )
else:
    response_lc = asg_client.create_launch_configuration(
        VolumeSize=storage,
        ImageId=ami,
        InstanceType=instance_type,
        KeyName=keypair
    )

1 个答案:

答案 0 :(得分:1)

如果没有出路,你可以这样做:

kwargs = {
  "ImageId": ami,
  "InstanceType": instance_type,
  "KeyName": keypair
}
if storage:
    kwargs["VolumeSize"] = storage

response_lc = asg_client.create_launch_configuration(**kwargs)

但我会建议你深入研究asg_client.create_launch_configuration方法,看看是否可以在所有情况下传递所有四个参数。