Skip to main content
 首页 » 编程设计

python之关于python变量作用域的疑惑

2025年05月04日12yyy_WW

<分区>

Possible Duplicate:
Short Description of Python Scoping Rules

我写了两个简单的函数:

# coding: utf-8 
def test(): 
    var = 1  
    def print_var(): 
        print var  
    print_var() 
    print var  
 
test() 
# 1 
# 1 
def test1(): 
    var = 2  
    def print_var(): 
        print var  
        var = 3  
    print_var() 
    print var  
 
test1() 
# raise Exception 

相比之下,test1() 在print var 之后赋值,然后引发异常:UnboundLocalError: local variable 'var' referenced before assignment,我想当我调用内部 print var 时,var 的值为 2,我错了吗?