で始まるローカル変数main()を設定しようとしています:insideFCT()main()
def insideFCT():
print "inside"
info = datetime.datetime.now()
print info
def main():
print "starting main"
insideFCT()
functionThatPrint(info) #for the example functionThatPrint() acts like print()
main()
それが私に与えるような方法を見つける必要があります:
starting main
inside
2013-09-19...
2013-09-19...
- まったく変更できません
main()(「info = insideFCT()」を追加して return を追加できないことを意味しますinsideFCT()) - 関数が同時に複数回使用されるため (スレッド)、グローバル変数を使用できません。
- もちろん、これは時間を取得することではなく、
datetime.datetime.now()私が制御できない入力を表しています
私の考えは、開始時にそれぞれに固有のものを見つけmain()、「info」をグローバル辞書に保存し、 inglobDict[TheThingSpecific]=infoを使用globDict[TheThingSpecific]してアクセスできるようにすることですfunctionThatPrint()(実際、functionThatPrint()同じ関数で呼び出されるinsideFCT()ため、同じ「特定のもの」があります)
探していた「特定の何か」を見つけました。これはthreading.current_thread()
解決:
insideFCT()に情報を保存しますglobalDict[str(threading.current_thread())]functionThatPrint()同じスレッドなので、同じ行を使用してアクセスできます。globalDict[str(threading.current_thread())]