python:从不同目录中的脚本中调用一个类并获取函数



我目前正在编写一个脚本,名为exp1.py,它位于中

/project/exp1.py 

在这个脚本中,我试图调用一个名为computelihood((的函数,该函数位于类class((,该函数在脚本method.py中,位于另一个目录中:

/project/methods/c_CLASS/method.py

因此,在exp1.py中的代码中,我这样做:

import sys
sys.path.append('/project/methods/c_CLASS/')

这会让我找到method.py所在的文件夹,但当我想从method.py调用Class(),以便获得我实际想要的函数computelihood((时,我会出错。我试试这个:

from method import Class
from Class import computelikelihood

但我得到了ImportError: No module named Class。有人能帮忙吗?

EDIT这就是我的Class__init__的样子:

class Class:
def __init__(self,e2wl,w2el,label_set):
self.e2wl = e2wl
self.w2el = w2el
self.workers = self.w2el.keys()
self.examples = self.e2wl.keys()
self.label_set = label_set

由于您正在尝试使用class中的方法,因此应该通过该类来使用。不要单独导入函数,因为它不打算这样使用:

from method import Class
Class.computelikelihood()

然而,只有当computelikelihood是静态/类方法时,这才有效:

class Class:
@classmethod
def computelikelihood(cls):
...
# or
@staticmethod
def computelikelihood():
...

如果是实例方法:

class Class:
def computelikelihood(self):
...

您需要首先实例化Class:类的对象

from method import Class
classObject = Class()
classObject.computelikelihood()

相关内容

  • 没有找到相关文章

最新更新