zoukankan      html  css  js  c++  java
  • Python variable 作用域和初始化

    Python 根据LEGB rule在不同的namespace中找变量

    在def的函数中对global 变量做修改还是不推荐的,应该将其作为参数传入函数

    try:
        do_something()
        cnt = 1
    except Exception:
        clean_up(cnt)

    try并不构成一个新的scope,所以cnt 在clean_up中是可以reference.

    但是存在一个问题:

      如果在定义cnt之前就出现了exception, except clause里面的clean_up调用就会有问题。

    对于这种情况是不是最好在try之前对cnt做一个初始化 然后在clean_up中去检查当前传进来的cnt

    cnt = None
    
    try:
    ...
    
    

    def clean_up(cnt): if cnt is None: sys.exit(0)

    我不知道这个是不是一个好方法。[待查]

  • 相关阅读:
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux内核同步
    Linux中断
    Linux中断
    Linux中断
    Linux中断
    Linux中断
  • 原文地址:https://www.cnblogs.com/lynnge/p/5030607.html
Copyright © 2011-2022 走看看