python 函数作用域小记

- 函数内部的变量只作用在函数内部,外部是不能调用的。

- python 中有作用域链,变量会由内向外找,先在自己的作用域找,自己没有再向上级找,直到找不到报错。

- 若在自己的作用域找到了相应的变量,而在赋值之前调用则程序会报错



#1

name = 'milton'

def f1():

    print(name)

f1()

程序会输出 >>>milton

f1 函数,变量 name 首先在函数内部找,没有找到变量的赋值,则向函数外部找,找到name = 'milton' ,打印出 name 的值。



#2

name ='milton'

def f1():

    name = 'long'

    print(name)

f1()

程序会输出 >>>long

f1 函数,变量 name 还是先从函数内部找,找到 name = 'long',故就不再向外找 name 的值。



#3

name ='milton'

def f1():

    print(name)

    name = 'long'

    print(name)

f1()

程序会报错,因为第一句 print(name),函数先从函数内部到变量 name ,但是 print 出现在了 name 的赋值之前,故程序报错:UnboundLocalError: local variable 'name' referenced before assignment  (本地变量(局部变量)在声明之前调用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容