名称空间与作用域

一 什么是名称空间?

#名称空间:存放名字的地方,三种名称空间.

python解释器自带的:内置空间名称
自定义的py文件内,顶着最左边定义的:全局名称空间
函数内部定义的:局部名称空间
name='tank'
def func1():
    print("func1")
    print("name")    #此时,可以查找到全局名称空间name,估结果为tank(调用顺序见下图)


    def func2():
        print("func2")
    func2()


print(name,'全局打印')
func1()
结果:可有正常输出

  

def func1():
    name = 'tank'
    print("func1")
    print("name") ##此时,print(name)调用成功,因为它为局部位置,故先找局部名称空间


    def func2():
        print("func2")
    func2()


print(name)    ####此时,print(name)调用失败,因为它顶格位置,只寻找全局名称空间和内置名称空间
func1()

  

 

名称空间的加载顺序

python test.py
#1、python解释器先启动,因而首先加载的是:内置名称空间
#2、执行test.py文件,然后以文件为基础,加载全局名称空间
#3、在执行文件的过程中如果调用函数,则临时产生局部名称空间

 

运行调用过程如上图

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/evan0925/p/11014772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值