TypeError:_init_()只需2个参数(给定1个)

时间:2015-12-16 06:20:47

标签: python python-2.7 jvm

我是python& amp;的新手想要运行简单的代码来创建&保存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 个答案:

答案 0 :(得分:1)

你错过了变量dataDir:

hw = HelloWorld('path/to/your/dir')

答案 1 :(得分:0)

根据定义,您的类的 init Helloworld需要dataDir的值。

但是在实例化时你没有提供任何东西。

根据上面的答案,您可以检查此链接中有关缺失类的错误是否相同?

JPype class not found

答案 2 :(得分:0)

当我们创建类的对象时,会调用__init__函数。 __init__函数接受两个参数,一个是类实例self,另一个是dataDir

__init__将初始化类或对象的实例。

__init__函数称为构造函数或初始化函数,在您创建类的新实例时会自动调用。