假设有这样一段代码:
def demo(): a = 1 b = 0 c = a / b def main(): try: demo() except Exception as e: print(e) main()
现在希望在异常时不对demo函数内的代码做任何修改也可以获取到demo中a和b的值。
认证0级讲师
参考了这个问题,然后解决了。嵌套函数获取调用函数
用全局变量 global 可以实现
global
a = b = 0 def demo(): global a, b a = 1 b = 0 c = a / b def main(): try: demo() except Exception as e: print 'a: %d, b: %d' % (a, b) print(e) main()
函数外加引用, 这是变量作用域的知识
a = None b = None def demo(): global a, b a = 1 b = 0 c = a / b def main(): try: demo() except Exception as e: print(e) main() print a print b
或者把a,b放一个字典变量里, 这样就不需要global了
g = {"a":0,"b":0} def demo(): g['a'] = 1; g['b'] = 0 c = g['a'] / g['b']
参考了这个问题,然后解决了。
嵌套函数获取调用函数
用全局变量
global
可以实现函数外加引用, 这是变量作用域的知识
或者把a,b放一个字典变量里, 这样就不需要global了