2017-03-09 12 views
0

trend.pyとtest_trend.pyは同じフォルダにあります。私はインスタンスメソッドperform_analysisから呼び出される関数find_regres_valuesを持つクラスTrendを持っています。python関数の絶対インポート

trend.py: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) 

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 

それは私にエラーを示しています

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

私はテストのために一つの関数をインポートするにはどうすればよいですか?

+0

あなたのpythonバージョン2.xに関する詳細を追加してください。3.x – GeoStoneMarten

+0

あなたの関数は 'class'の中にあります。そのクラスをインポートし、必要に応じてインスタンス化してメソッドを使用する必要があります。 –

+0

@Tonja修正がありません:コード内で、一部は実際のリストに照らしてエラーなしでテストします。 find_regres_valuesにインデントの問題があります... – GeoStoneMarten

答えて

5

find_regres_valuesあなたは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 
+0

さらに、find_regres_valuesがクラスメソッドである場合、セルフパラメータがありません。 – GeoStoneMarten

0

何Pythonのバージョンは、使用インデントを削除し、クラスTrendの方法ですか?

のPython 3.xの場合:メソッドの

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) 

は正しいインポートの使用について__init__.py

このコードを空のファイルを作成します。情報:

ファイルのtrend.pyの後にpermorn_analysisメソッドを使用すると、コロンを挿入します。

関連する問題