python - 如何获取嵌套函数中的值
问题描述
假设有这样一段代码:
def demo(): a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print(e)main()
现在希望在异常时不对demo函数内的代码做任何修改也可以获取到demo中a和b的值。
问题解答
回答1:参考了这个问题,然后解决了。嵌套函数获取调用函数
回答2:用全局变量 global 可以实现
a = b = 0def demo(): global a, b a = 1 b = 0 c = a / bdef main():try: demo()except Exception as e: print ’a: %d, b: %d’ % (a, b) print(e)main()回答3:
函数外加引用, 这是变量作用域的知识
a = Noneb = Nonedef demo(): global a, b a = 1 b = 0 c = a / bdef main(): try:demo() except Exception as e:print(e)main()print aprint b
或者把a,b放一个字典变量里, 这样就不需要global了
g = {'a':0,'b':0}def demo(): g[’a’] = 1; g[’b’] = 0 c = g[’a’] / g[’b’]
相关文章:
1. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路2. javascript - 小白求解:mac 下如何设置nodejs express的 NODE_NEV 环境变量3. javascript - 实参和形参有哪些通俗的命名吗?尤其形参4. 找一个权威、实战的微信扫码授权登录网站的开发教程或者文章5. mysql5.7 json查询支持6. Python如何考虑代码注入安全?7. javascript - avalon.js ms-on 事件绑定无效 ?8. javascript - 请问一下react-native 布局的时候,尺寸的大小是如何确定的呢?9. javascript - js 修改表格元素的,可以用DOM操作实现吗?10. javascript - jQuery中live事件在移动微信端下没有效果;代码如下