Я новичок в 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 дано)" Я не знаю, как это исправить, везде проверяю, но ничего не помогло
3 ответа
Вы пропустили переменную dataDir здесь:
hw = HelloWorld('path/to/your/dir')
Когда мы создаем объект класса, вызывается функция __init__
. функция __init__
принимает два аргумента, один из которых является экземпляром класса self
, а другой - dataDir
.
__init__
инициализирует экземпляр класса или объект.
Функция __init__
называется конструктором или инициализатором и вызывается автоматически при создании нового экземпляра класса.
- Подробнее о классах в Python
- Подробнее о
__init__
методе
По определению, init вашего класса Helloworld нуждается в значении dataDir.
Но при создании экземпляра вы ничего не поставляли.
Основываясь на ответах выше, можете ли вы проверить, является ли ошибка, связанная с отсутствующим классом, такой же по этой ссылке?
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.