码迷,mamicode.com
首页 > 其他好文 > 详细

名称空间与作用域

时间:2018-09-26 22:44:09      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:内存   def   namespace   UNC   调用函数   func   函数   odi   xxx   

# _*_ coding: utf-8 _*_

# 名称空间
# 1.名称空间(Namespaces):指的是在内存空间中存放 名字 与 值内存地址绑定关系
# 2.名称空间分为三大类
# 1、python解释器先启动,因而首先加载的是:内置名称空间
# 2、执行test.py文件,然后以文件为基础,加载全局名称空间
# 3、在执行文件的过程中如果调用函数,则临时产生局部名称空间

# 内置名称空间:存放的是python解释器自带的名字
# 随着Python解释器的启动则产生
# Python解释器关闭则销毁

# 全局名称空间:???除了内置和局部都是全局???
# x = 1 # x全局名称
# x=1
# if True:
# y=2
# while True:
# while True:
# while True:
# z=3
# def func():
# pass
#
# 产生:执行python程序时产生
# 销毁:python程序执行完毕后则销毁

# 局部名称空间:在函数内定义的名字
# def foo():
# m = 100
# foo()
# 产生: 在函数调用时临时产生
# 销毁: 在函数调用完毕后则销毁
# 三种名称空间的产生的先后顺序: 内置->全局->局部
# 查找名字的顺序:从当前位置往外一层一层查找
# 如果当前在局部名称空间: 局部->全局->内置
# 如果当前在全局名称空间: 全局->内置
# max=1
# def f1():
# max=2
# # print(max)
# def f2():
# max=3
# print(max)
# f2()
#
# f1()
# print(max)

# len=111
# def foo():
# len=222
# print(len)
# len=111
# foo()

# 作用域:指的是作用范围
#!!!作用域关系是在函数定义阶段就已经固定死了,与调用位置无关

# 全局作用域:包含内置与全局名称空间的名字
# 特点:全局存活,全局有效
# 局部作用域:包含局部名称空间的名字
# 特点:临时存活,局部有效

# !!!作用域关系是在函数定义阶段就已经固定死了,与调用位置无关
# 示范一:
def f1():
print(xxx)
# xxx=111

def f2():
xxx=222
f1()
f2()

# 示范二:
# xxx=111
# def f1():
# print(xxx)
# # xxx=222
# yyy=222
# print(yyy)
#
# f1()

名称空间与作用域

标签:内存   def   namespace   UNC   调用函数   func   函数   odi   xxx   

原文地址:https://www.cnblogs.com/OutOfControl/p/9710447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!