как мы можем напрямую вызвать load_workbook из пакета openpyxl - PullRequest
0 голосов
/ 26 апреля 2020

Я не могу понять, как мы можем напрямую вызвать load_workbook из пакета openpyxl. Я прошел через https://openpyxl.readthedocs.io/en/stable/api/openpyxl.html, чтобы понять. Но я не могу этого сделать.

Мы можем вызвать функцию load_workbook следующим образом. Может кто-нибудь помочь мне понять это. Мы не импортируем модуль из пакета и не импортируем функцию из package.module, а также не импортируем напрямую package.module, внутри которого определен openpyxl. Есть ли в пакете root openpyxl определенная функция?

import openpyxl as xl
xl.load_workbook()

enter image description here

1 Ответ

1 голос
/ 26 апреля 2020

Если вы хотите проверить __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 .....

Это (я считаю) сделано авторами для создания удобного интерфейса для пользователей, так как это очень распространенные и базовые c функции. Поэтому вместо того, чтобы делать:

openpyxl.reader.excel.load_workbook()

Вы можете просто сделать:

openpyxl.load_workbook()

Для получения дополнительной информации о том, для чего __init__.py нужен?

...