用类导入模块

时间:2013-11-02 15:41:12

标签: python class oop module

问题:我的脚本中有一个类和一些函数在文件夹中(带有__ init __ .py)。在根文件夹中,我有一个 main.py 脚本。

在主脚本中,我使用模型调用模块:

import folder.script

而且,我用模型调用了模块:

folder.script.class.function()

'class'是用作模块的脚本类。 'function'是相对于类的函数。

但是,我收到输出错误:

TypeError: unbound method function() must be called with class instance as first argument 

(没有得到任何东西)

错误在哪里?

1 个答案:

答案 0 :(得分:2)

这意味着function要求首先使用class的实例才能使用它。使你的代码像这样:

folder.script.class(...).function()

通过在类名后面添加(...),可以创建该类的实例。

但是,最好这样做:

var = folder.script.class(...)
var.function()

这样,您可以稍后在脚本中使用名为var的类实例。

或者,如果构造function使得实际上不需要类实例工作,为什么不将它完全移出类并将其放在模块中?只有在函数需要时才能将函数放在类中才能正常工作。

注意: ...表示放置所需内容。我不知道class.__init__需要什么参数(如果有的话)。如果没有,只做()就行了。