【发布时间】:2022-01-27 16:02:45
【问题描述】:
例如我的代码如下:
if env = 'staging':
db_cluster = rds.DatabaseCluster(self,
instances=2,
identifier='ksdfjdsk',
region='string',
password='string',
removal_policy='string'
...
...
iam='iam role name')
else:
db_cluster = rds.DatabaseClusterFromSnapshot(self,
instances=2,
snapshot_identifier="arn"
identifier='ksdfjdsk',
region='string',
password='string value',
removal_policy='stringsdfdd'
...
...
iam='iam role name')
这里,DatabaseCluster 和 DatabaseClusterFromSnapshot 是 was-cdk API。两者都采用几乎相同的参数,唯一的区别是第二个参数 snapshot_identifier 额外。
现在的问题是,是否有任何方法或逻辑可以减少 if-else 的代码块。 (因为两者都有大量的参数)
【问题讨论】:
-
如果它们都只使用关键字参数,那么您可以使用 dict-unpacking 来调用该函数。类似于
someFunc(**dict_of_values)的东西,其中dict_of_values类似于{"firstkw": "firstvalue", "secondkw": "secondvalue"} -
好的。。谢谢!我使用了 dict-unpacking...
标签: python-3.x amazon-web-services if-statement aws-cdk optional-parameters