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

2024-03-29 12:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

/project/exp1.py 

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

 /project/methods/c_CLASS/method.py

因此,在我的exp1.py中的代码中,我执行以下操作:

import sys

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

这将使我进入method.py所在的文件夹,但是当我想从method.py调用Class()时,我得到了我真正想要的函数computelikelihood(),我得到了错误。我试试这个:

from method import Class
from Class import computelikelihood

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

编辑 这就是我的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

Tags: 函数pyimportselfproject脚本methodlabel
1条回答
网友
1楼 · 发布于 2024-03-29 12:37:55

因为您试图使用来自类的方法,所以应该通过类来实现。不要单独导入函数,因为它不打算这样使用:

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()

相关问题 更多 >