我想验证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