AWS boto3.session.Session() 和 boto3.Session() 之间的区别

syl*_*lye 4 python aws-sdk boto3

我正在尝试使用 AWS python 库 boto3 创建会话。我发现我们也可以这样做

session = boto3.Session(profile_name='profile1')
Run Code Online (Sandbox Code Playgroud)

或者

session2 = boto3.session.Session(profile_name='profile2')
Run Code Online (Sandbox Code Playgroud)

我检查了他们的文档,它应该使用boto3.session.Session()

为什么两种方法都有效?它们背后的理念有何不同?

Ash*_*pin 5

这只是为了方便;它们都指同一个类。这里发生的是__init__.pypython boto3 包包含以下内容:

from boto3.session import Session
Run Code Online (Sandbox Code Playgroud)

这只是允许您在 python 代码中将 Session 类引用为 boto3.Session 而不是 boto3.session.Session。

本文提供有关此 python 习惯用法的更多信息:

您要做的一件常见的事情__init__.py是将选定的类、函数等导入到包级别,以便可以方便地从包中导入它们。