我正在尝试设置一个局部变量,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()”并添加返回insideFCT()) - 我不能使用全局变量,因为该函数将同时使用多次(线程)
- 当然这根本不是为了获得时间,
datetime.datetime.now()代表我无法控制的输入
我的想法是在它们开始时找到每个特定的东西main(),将“信息”存储在全局字典中globDict[TheThingSpecific]=info,然后我可以使用globDict[TheThingSpecific]in访问它functionThatPrint()(实际上,functionThatPrint()在相同的函数中调用,insideFCT()因此它们具有相同的“特定事物”)
我刚刚找到了我正在寻找的“特定的东西”。它是threading.current_thread()
解决方案:
insideFCT()将信息存储到globalDict[str(threading.current_thread())]- 然后我可以
functionThatPrint()使用同一行访问它,因为它是同一个线程:globalDict[str(threading.current_thread())]