我正在使用 Python 3 的类型提示语法,并且正在编写一个使用 SQS 的小型 AWS 应用程序。我试图暗示队列的类型。这就是我获取队列类型的方式:
>>> import boto3
>>> session = boto3.session.Session(
>>> aws_access_key_id=AWS_ACCESS_KEY,
>>> aws_secret_access_key=AWS_SECRET_KEY,
>>> region_name='us-west-2'
>>> )
>>> sqs = session.resource('sqs')
>>> queue=sqs.Queue(AWS_QUEUE_URL)
>>>
>>> type(queue)
<class 'boto3.resources.factory.sqs.Queue'>
我这样写我的类型提示函数:
def get_session() -> boto3.resources.factory.sqs.Queue:
...
但我收到一个错误:
AttributeError: module 'boto3.resources.factory' has no attribute 'sqs'
我自己使用dir(...)
. 似乎factory
确实不包含sqs
。因此,我有两个问题:
- 为什么要
type
返回这个不存在的类? - 如何找到该对象的正确类型?