验证EC2对象的类型或类



我想验证boto3客户端对象的类型或类。

>>> import boto3
>>> ec2 = boto3.client('ec2')
>>> type(ec2)
<class 'botocore.client.EC2'>
>>>

如何将其转化为我可以用于if比较的东西?像if type(ec2) == 'botocore.client.EC2':if isinstance(ec2, botocore.client.EC2):这样的语句不起作用

@gshpychka表示我需要首先导入适当的模块。所以我需要botocore模块?还是不管用

>>> import boto3
>>> import botocore
>>> ec2 = boto3.client('ec2')
>>> type(ec2)
<class 'botocore.client.EC2'>
>>> type(ec2) == botocore.client.EC2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'botocore.client' has no attribute 'EC2'
>>> type(ec2) == botocore.client
False
>>> type(ec2) == botocore
False
>>>

问题是隐式的EC2类创建:https://github.com/boto/botocore/blob/develop/botocore/client.py L111

在我看来,这里似乎没有漂亮的选择,但你可以使用这样的东西:

>>> print(ec2.__module__ + '.' + ec2.__class__.__name__ == "botocore.client.EC2")
True

>>> print(ec2.__class__.__name__ == "EC2")
True

相关内容

  • 没有找到相关文章