Не наследуется класс в python-docx бибиотеке

Почему-то выбивает ошибку при наследовании класса Document.

Код:

from docx import Document

class MyDoc(Document):

    def __init__(self):
        super().__init__()

        self.save("WTF.docx")

if __name__=="__main__":
   dc = MyDoc()

Ошибка:

TypeError: function() argument 'code' must be code, not str

Указывает на строку "class MyDoc(Document):"

Как будто Document - это строка. Но ведь при использовании в библиотеке можно убедиться, что это класс. Пример использования Document:

from docx import Document

if __name__=="__main__":

    dc = Document()
    dc.save("WTF.docx")

И этот код работает.

В чем проблема???


Ответы (2 шт):

Автор решения: Danis

Document это функция которая возвращает экземпляр класса.

Мы должны получить экземпляр класса, а потом с помощью type узнать экземпляром какого класса он является

class MyDoc(type(Document())):
→ Ссылка
Автор решения: CSharpLooser

Спасибо всем, кто помог. Но способ с type не работает. Не по причинам того, что способ неправильный, а , видимо, из-за особенностей библиотеки. Выбивает ошибку:

TypeError: init() missing 2 required positional arguments: 'element' and 'part'

Скорее всего в недрах библиотеки Document Имеет какие-то принимаемые значения в конструкторе. Копаться в этом не сильно хочется, вряд ли будет какой-то не костыльный способ. Проще уж тогда не наследовать класс, а писать код по-другому.

Всем спасибо, но если будут идеи, как можно просто это сделать, то пишите, буду очень благодарен.

→ Ссылка