Python NameError: name 'is_flag' is not defined

NameError: name 'is_flag' is not defined

翻译:名字错误:名字‘is_flag’ 没有定义

意思是,你的 is_line 变量没有定义。你可能会说,我定义了呀。

那就看下面代码(下面代码主要关注 is_flag ,其他问题忽略)

1
2
3
4
5
6
7
8
9
10
11
12
def test():
    ## 定义全局变量
    global is_flag
     
    str = "aa"
    if str == "aa":
        print("aa")
        is_flag = True
    else:
        print("bb")
         
    print(is_flag)

 -

​    上面的代码意思,如果 str 里是 aa 那么,is_flag 就是 True,最后一行 print(is_flag) 也能正常打印出 True 也不会报错。

​    假设,str = "bb" 呢? 就会去执行 else 里代码,到最后一行 print(is_flag) 就不能正常打印,因为此时 is_flag 没有赋值,就会报开头的错错。

​    其实,写代码的时候就时想用 is_flag 先做个标记,但是忘了有可能走 else 分支,所以会出现这个 BUG 。



下面是正确的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
def test():
    ## 定义全局变量
    global is_flag
     
    str = "aa"
    if str == "aa":
        print("aa")
        is_flag = True
    else:
        print("bb")
        is_flag = False     ## 加入这行就不会报错了。
         
    print(is_flag)

   或者开始的时候就在 global 下给 is_flag 赋初值,  is_flag = True

 

posted @   悟透  阅读(448)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示