我正在尝试设置一个局部变量,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())]