python绝对导入函数

时间:2017-03-09 09:49:10

标签: python

trend.py和test_trend.py位于同一个文件夹中。我有一个带有函数find_regres_values的类Trend,它是从实例方法perform_analysis调用的。

trend.py:

class Trend:
    def __init__(self, values, trend_type):
        self.all_values = values

    def permorn_analysis(self, first, trend_type):
        #blabla
        vals_reg = ["a", "b", "c", "d"]
        find_regres_values(vals_reg, first, trend_type)

    def find_regres_values(vals_reg, first, trend_type):
        #do somethin
        pass

在test_trend.py

from trend import find_regres_values
class ConsecRegions(unittest.TestCase):

    def test_find_regres_values_decreas_min_before_max(self):
        #initialize some values
        output = find_regres_values(vals_reg, first, trend_type)
        self.assertEqual(output, result)

它显示了一个错误:

  File "test_trend.py", line 2, in <module>
    from trend import find_regres_values
ImportError: cannot import name find_regres_values

如何导入一个功能进行测试?

2 个答案:

答案 0 :(得分:5)

find_regres_values是类Trend的方法,如果您希望find_regres_values成为自己的函数,则删除缩进

class Trend:
    def __init__(self, values, trend_type):
        self.all_values = values
    def permorn_analysis(self,first,trend_type)
        #blabla
        vals_reg = some list
        find_regres_values(vals_reg, first, trend_type)

def find_regres_values(vals_reg, first, trend_type):
    #do something

答案 1 :(得分:0)

您使用的是哪个Python版本?

如果是Python 3.x:

创建空文件__init__.py

要正确导入,请使用以下代码:

from trend import Trend

并编辑方法调用:

from trend import Trend

class ConsecRegions(unittest.TestCase):

    def test_find_regres_values_decreas_min_before_max(self):
        #initialize some values
        output = Trend.find_regres_values(vals_reg, first, trend_type)
        self.assertEqual(output, result)

有关信息:

在permorn_analysis方法之后的文件trend.py中插入冒号。