boto3.client('S3') 返回什么?

J. *_*Doe 7 python python-3.x boto3

我可以看到:

s = boto3.client('s3')
print(type(s))
Run Code Online (Sandbox Code Playgroud)

印刷

<class 'botocore.client.S3'>
Run Code Online (Sandbox Code Playgroud)

但如果我尝试

print(botocore.client.S3)
Run Code Online (Sandbox Code Playgroud)

我得到

AttributeError: module 'botocore.client' has no attribute 'S3'
Run Code Online (Sandbox Code Playgroud)

怎么来的?

旁注:我的最终目标是返回一个模拟 botocore.client.S3 必须提供的内容,但返回的技术方面已经暗示了我一段时间,从知道这一点,我可能会知道如何回答我的终极问题。

pac*_*992 15

经过一番尝试,找到了可以使用的实例类型:

>>> import boto3
>>> import botocore
>>> isinstance(boto3.client('s3'), botocore.client.BaseClient)
True
Run Code Online (Sandbox Code Playgroud)


eat*_*ood 0

实际上并没有像这样打印类对象的概念(它们没有reprstr方法)。如果您想访问类本身并查看所有方法和参数,如果您不知道 botocore 和 boto3 安装在哪里,您可以这样做(使用上面的示例):

>> import boto3
>> import botocore

>> s = boto3.client('s3')

>> print(type(s))
<class 'botocore.client.S3'>

>> print(botcore.client)
<module 'botocore.client' from '/usr/local/lib/python3.7/site-packages/botocore/client.py'>
Run Code Online (Sandbox Code Playgroud)

现在,在您最喜欢的编辑器中打开模块“/usr/local/lib/python3.7/site-packages/botocore/client.py”,看看它是如何工作的。此外,您可以查看 boto3 和 botocore 文档以了解如何使用这些对象。