如何在python中向包含boto3对象的函数添加类型提示?
如何在不使用诸如mypy_boto3这样的外部库的情况下,使用boto3向函数添加类型提示? 这与boto3.client尤其混淆,后者返回类型为botocore.client.s3的对象,该对象无法导入 下面脚本中要注释的示例函数是如何在python中向包含boto3对象的函数添加类型提示?,python,boto3,boto,type-hinting,Python,Boto3,Boto,Type Hinting,如何在不使用诸如mypy_boto3这样的外部库的情况下,使用boto3向函数添加类型提示? 这与boto3.client尤其混淆,后者返回类型为botocore.client.s3的对象,该对象无法导入 下面脚本中要注释的示例函数是get\u client和list\u objects: import boto3 def get_client(): return boto3.client('s3') def list_objects(client): response
get\u client
和list\u objects
:
import boto3
def get_client():
return boto3.client('s3')
def list_objects(client):
response = client.list_objects(Bucket="a", Prefix="b")
for content in response.get('Contents', []):
yield content.get('Key')
client = get_client()
for f in list_objects(client):
print(f)
我开始学习
键入模块,并了解了python 3.6+中可用的不同选项,但我不清楚运行时类型的类型提示是什么,比如在这种情况下,由boto3.client返回的对象。如果您对正在开发的外部库不感兴趣,则需要根据PEP 484使用。只需将类型放在单引号中
def get_object(s3_client: 'botocore.client.S3') -> str:
...
显然,boto3.client('s3')
返回的对象的运行时类型是
。不幸的是,添加相应的类型提示会引发:AttributeError:module'botocore.client'没有属性'S3'