簡體   English   中英

python函數的絕對導入

[英]python absolute import of the function

Trend.py和test_trend.py在同一文件夾中。 我有一個趨勢類,該類具有從實例方法perform_analysis調用的功能find_regres_values。

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

如何導入一個函數進行測試?

find_regres_valuesTrend類的方法,如果您希望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

您使用什么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中,插入一個冒號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM