我正在尝试在main()
的{{1}}中设置一个局部变量,该变量从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...
(这意味着我无法添加“info = insideFCT()”并添加返回main()
)insideFCT()
代表我无法控制的输入我的想法是在每个datetime.datetime.now()
开始时找到特定的内容,将“info”存储在全局字典main()
中,然后我可以使用globDict[TheThingSpecific]=info
在{globDict[TheThingSpecific]
中访问它1}}(实际上,functionThatPrint()
在与functionThatPrint()
相同的函数中被调用,因此它们具有相同的“特定事物”)
我刚刚找到了我正在寻找的“特定的东西”。这是insideFCT()
SOLUTION:
threading.current_thread()
将信息存储到insideFCT()
globalDict[str(threading.current_thread())]
中访问它,因为它是相同的线程:functionThatPrint()
答案 0 :(得分:0)
无法从外部在python中的函数范围内设置局部变量。名称info
所属的范围在“编译时”决定 - 也就是说,当解释器执行def main()
命令时。
由于info
内的main()
没有绑定,因此假定它是全局的或内置的。就是这样。