2017-04-22 19 views
-2

私はこの機能を持っている:上記のいずれもが、このように見えるために私の究極のコードをファイル「main_functions.py」にインポートされPython関数を引数として渡さずに渡しますか?

def b(do_this, do_that): 
    print "hi." 

def a(one, two, the_argument_function): 
    if one in two: 
     return the_argument_function 

私the_argument_functionは次のようになります:

print function_from_main(package1.a, argument, package2.b(do_this, do_that) 

「」機能が動作しますが、「function_from_main」に渡されると、「B」の機能はまだWAなしで実行さから「2の1であれば」実際に実行する必要があるかどうかを確認するために、 "a"からのチェックを行います。

どうすればよいですか?

+1

あなたが明示的に 'B'を呼び出す条件が満たされたときに関数が呼び出されることように機能aを変更する必要があります機能のみ関数名package2.bを渡しする必要があり、どのようにそれは実行されないでしょうか? – timgeb

+0

@timgebあなたは私の質問を完璧に理解しました。今、どうすれば実行できないのですか? –

+0

それを呼び出さないでください.. – timgeb

答えて

1

package2.b(do_this, do_that)は、関数呼び出し(関数名の後に括弧を付けます)です。代わりにあなたがa

あなたはまた、

# function a definition 
def a(one, two, the_argument_function, argument_dict): 
    if one in two: 
     return the_argument_function(**argument_dict) 

def b(do_this, do_that): 
    print "hi." 

# function call for a 
a(one, two, b, {'do_this': some_value, 'do_that': some_other_value}) 
+0

ありがとう、これは働いた。 –

+0

ソリューションが機能していれば、回答を受け入れられたものとして適切にマークしてください。これは、他のユーザーが簡単に答えを見つけるのに役立ちます。 – shanmuga

関連する問題