如果我使用boto3创建与aws-ec2的连接,则返回类型为boto3.resources.factory.ec2.ServiceResource
import boto3
cnxn = boto3.Session().resource('ec2')
type(cnxn)
>> boto3.resources.factory.ec2.ServiceResource
我希望能够将其用作类型提示的类型。但是,如果我尝试引用它,我会收到错误。
boto3.resources.factory.ec2.ServiceResource
AttributeError: module 'boto3.resources.factory' has no attribute 'ec2'
有没有办法将这些类型用作提示?
编辑:导入也不起作用
import boto3.resources.factory.ec2
>> ImportError: No module named 'boto3.resources.factory.ec2'; 'boto3.resources.factory' is not a package
答案 0 :(得分:1)
您需要使用forward references,因为这些类型在运行时才存在。
答案 1 :(得分:-1)
请参阅python type documentation
你得到的是一个类型对象。如果您打算从类型中创建一个新对象,请使用class type(name, bases, dict)
创建一个新对象。如示例所示:
>>> class X(object):
... a = 1
...
>>> X = type('X', (object,), dict(a=1))