【问题标题】:how are we able to directly call load_workbook from openpyxl package我们如何能够从 openpyxl 包中直接调用 load_workbook
【发布时间】:2020-08-09 18:44:17
【问题描述】:

我无法理解,我们如何能够直接从 openpyxl 包中调用 load_workbook。我通过https://openpyxl.readthedocs.io/en/stable/api/openpyxl.html 了解。但我做不到。

我们可以像这样调用 load_workbook 函数。有人可以帮我理解这一点。我们既不是从包中导入模块,也不是从 package.module 中导入函数,也不是直接导入定义了 openpyxl 的 package.module。根openpyxl包本身有没有定义在里面的函数?

import openpyxl as xl
xl.load_workbook()

【问题讨论】:

  • 我不明白你的意思。在您的示例中,一个导入,那么为什么您会得出结论,该函数可以在不导入的情况下使用?
  • "根openpyxl包本身有定义在里面的功能吗?" - 如果您显示的代码有效,显然是的。这能回答你的问题吗?

标签: python python-3.x openpyxl python-module


【解决方案1】:

如果您要检查包装的__init__.py,您会发现 - 除其他外 - 以下行:

from openpyxl.workbook import Workbook
from openpyxl.reader.excel import load_workbook

然后,去reader.excel.py你会找到load_workbook的定义:

def load_workbook(filename, read_only=False, keep_vba=KEEP_VBA,
                  data_only=False, guess_types=False, keep_links=True):
    """Open the given filename and return the workbook .....

作者这样做(我相信)是为了为用户创建一个方便的界面,因为这些是非常常见和基本的功能。所以不需要这样做:

openpyxl.reader.excel.load_workbook()

你可以这样做:

openpyxl.load_workbook()

For more information about What is __init__.py for?

【讨论】:

  • 很好的答案。我经历了 init 但我可能没有进行彻底的深入研究。但是很好的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多