我有一个参数,可以是 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。
最佳答案
您可以尝试使用关键字参数扩展:
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
)
关于python - 根据Python3中的值传递可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62270103/