假设有这样一段代码:
def demo():
a = 1
b = 0
c = a / b
def main():
try:
demo()
except Exception as e:
print(e)
main()
现在希望在异常时不对demo函数内的代码做任何修改也可以获取到demo中a和b的值。
PHP中文网2017-05-18 10:57:41
用全局变量 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梦2017-05-18 10:57:41
函数外加引用, 这是变量作用域的知识
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']