2017-04-28 3 views
0

以下の関数から、crew_filternodeの情報を出力できます。しかし、私はそれらの値をターゲットスクリプトに戻す際に助けが必要です。また、どのように私はターゲットスクリプトでそれらにアクセスできますか?forループの値をPythonで返し、他のスクリプトにアクセスする方法

def getValuesForNode(self): 
    for crew_filter, node in self.getNodes(): 
     print crew_filter, node 

注:crew_filternodeとして複数の値を持つことになります、私はタプルや辞書にそれらを格納する必要があります。

+1

なぜ 'return self.getNodes()'だけではないのですか?実際には、なぜ機能は全くありますか? – zondo

+0

このモジュールを別のスクリプトに移したり、独自のプロセスとして実行していますか? – tdelaney

答えて

1

Testクラスがスクリプトtest.pyに書き込まれている場合。

あなたはたとえばfoo.pyのために、別のスクリプトでは上記で定義された発電機によって、あなたの値にアクセスすることができます次に

class Test: 
    def get_values_for_node(self): 
     test_data = (
      (1, 2), 
      (3, 4), 
      (5, 6) 
     ) 
     for crew_filter, node in test_data: 
      yield crew_filter, node 

test.py:

foo.py

from test import Test 

if __name__ == '__main__': 
    test = Test() 
    for crew_filter, node in test.get_values_for_node(): 
     print('{0} - {1}'.format(crew_filter, node)) 

出力

1 - 2 
3 - 4 
5 - 6 

あなたは、あなたが以下のようにそれをしなければならないdictの反復処理したい場合は、タプルや辞書のいずれか、あなたのデータソースとVAR test_dataを置き換えることができます。

class Test: 
    def get_values_for_node(self): 
     test_data = { 
      'id':1, 
      'name': 'tom', 
      'age': 23 
     } 
     for crew_filter, node in test_data.items(): 
      yield crew_filter, node 

出力を

id - 1 
name - tom 
age - 23 

あなたがいる場合yieldの使用またはgeneratorの概念に慣れていない、あなたがこのページを閲覧することができます

What does the "yield" keyword do in Python?

+0

解決策は私の質問に完全に合っています。驚くべきウル。 – srisriv

関連する問題