почему моя IDE не может выполнять автозаполнение для python-docx?

когда я использую python-docx, моя среда IDE, например pycharm wing, не может выполнять ее автоматически. этот код

from docx import Document

asd = Document()
asd.add_heading("test")
asd.save("cao.docx")

когда я набираю asd. add_heading не поддерживает автозаполнение.

from docx.document import Document  

asd = Document()
asd.save()
this code can Auto-Complete
but atention

TypeError: в init() отсутствуют 2 обязательных позиционных аргумента: «элемент» и «часть»

Извините за мой плохой английский


person jw chen    schedule 23.03.2017    source источник


Ответы (2)


В последнем случае вы по ошибке импортируете docx.document.Document, а не docx.Document. Класс Document в docx.document имеет другую позывную и в любом случае не тот, который вам нужен :)

person scanny    schedule 23.05.2017

На самом деле, docx.Document(...) на самом деле является методом, который возвращает объект класса docx.document.Document.
(Возможно, они должны были назвать этот метод, следуя соглашению об именах, например, docx.create_document(.. .))

Следовательно, вы должны использовать оба следующих импорта, чтобы получить видимость содержимого класса docx.document.Document:

from docx import Document
from docx.document import Document
person Satyendra    schedule 23.09.2018
comment
это должен быть принятый ответ, поскольку он также показывает, как решить проблему. - person nicolasassi; 13.03.2021