Python 3.5类型提示工厂类型

时间:2016-05-21 19:08:08

标签: python amazon-ec2 python-3.5 boto3

如果我使用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

2 个答案:

答案 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))