Я новичок в Python и хочу запустить простой код для создания и сохранения HelloWorld.docx, вот мой код default.py

asd = os.path.join(os.path.abspath("./"), "lib")
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.ext.dirs=%s" % asd)
hw = HelloWorld()
hw.main()

А вот мой код init .py ()

class HelloWorld:
def __init__(self, dataDir):
    self.dataDir = dataDir

def main(self):
    """
        : The path to the documents directory. :
    """
    Document = jpype.JClass("com.aspose.words.Document")

    DocumentBuilder = jpype.JClass("com.aspose.words.DocumentBuilder")

    doc = Document()
    builder = DocumentBuilder(doc)

    builder.writeln('Hello World!')
    doc.save(self.dataDir +'HelloWorld.docx')

Я получаю эту ошибку "TypeError: init () принимает ровно 2 аргумента (1 дано)" Я не знаю, как это исправить, везде проверяю, но ничего не помогло

-2
Usama Saeed 16 Дек 2015 в 09:20

3 ответа

Лучший ответ

Вы пропустили переменную dataDir здесь:

hw = HelloWorld('path/to/your/dir')
1
Balas 16 Дек 2015 в 06:33

Когда мы создаем объект класса, вызывается функция __init__. функция __init__ принимает два аргумента, один из которых является экземпляром класса self, а другой - dataDir.

__init__ инициализирует экземпляр класса или объект.

Функция __init__ называется конструктором или инициализатором и вызывается автоматически при создании нового экземпляра класса.

0
Vivek Sable 16 Дек 2015 в 06:37

По определению, init вашего класса Helloworld нуждается в значении dataDir.

Но при создании экземпляра вы ничего не поставляли.

Основываясь на ответах выше, можете ли вы проверить, является ли ошибка, связанная с отсутствующим классом, такой же по этой ссылке?

Класс JPype не найден

0
Community 23 Май 2017 в 12:30