我目前正在编写一个脚本,名为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()