私はこのコードを持っている:Pythonで別の関数の中で関数を使う方法は?
# - - - - -my function inside another function- - - - - - - - - - - - - - - -
def Enhanced(Dofn,Membership,incenter,iteration, tolerance,h,m,clusters,q):
def Dofn(Membership,center,h,m,clusters,q):
#some processings.
center = V
Membership = U
ObjFunction = sum(O)
return Membership, center,ObjFunction
ObjFunction = []
center = incenter
for ii in range(0,iteration):
[Membership,center,ObjFunc] = Dofn(Membership,center,h,m,clusters,q)
ObjFunction.append(ObjFunc)
return Membership, center, iterN
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#Main program
# some parameters
Membership, center, iterN = Enhanced(Dofn,Membership,incenter,iteration, tolerance,h,m,clusters,q)
は、私は、関数内の関数を使用します。以前の質問で私は私が上記のような機能を呼び出すことができることを読んだ。それでも私にエラーが出る:
name 'Dofn' is not defined
Enhanedに紹介する「Dofn」の色が違っており、機能として認識されているようです。しかし、メインプログラムではエラーが発生しています! 関数内部で関数を使用する問題を解決する方法を教えてください。メインプログラムでそれを呼びますか?
ありがとうございました
引数リストに 'Dofn'があるのはなぜですか? – user2357112
この回答に基づいて:[リンク](http://stackoverflow.com/questions/6289646/python-function-as-a-function-argument?lq=1) – AMN
@AMNあなたは呼び出し元が(他の)関数を呼び出す必要のある関数を通知する必要がある場合は、引数を指定します。しかし、あなたのコードでは、 'Enhanced'は常に内部関数を呼び出す必要があります。したがって、誰に呼び出すかを教える必要はありません。 – interjay