python入门之名称空间的查找顺序】的更多相关文章

名称空间的查找顺序: 局部:局部 > 全局 > 内置 全局:全局 > 内置 # 内置再找不到就报错 # 函数内部使用的名字,在定义阶段已经规定死了,与你的调用位置无关 x = 111 def func1(): x = 222 def func2(): x = 333 def func3(): # x = 444 def func4(): # x = 555 print(x) print('from func4') func4() func3() func2() func1() x = 1…
name = 'tank' 什么是名称空间? 存放名字的空间 如果你想访问一个变量值,必须先访问对应的名称空间,拿到名字和对应的内存地址的绑定关系 名称空间的分类: 1.内置名称空间: python提前给你的定义完的名字,就是存在内置名称空间 2.全局名称空间 存放于文件级别的名字,就是全局名称空间 if while for 内部定义的名字执行之后都存放于全局名称空间 3.局部名称空间 函数内部定义的所有名字都是存放与当前函数的内置名称空间 生命周期: 1.内置名称空间 在python解释器启动…
一:名称空间 1:什么是名称空间: 名称空间即:储存名字与值的内存地址关联关系的空间 2.名称空间的分类: 内置名称空间:存储器自带的一些名称与值的对应关系,如:print,len,max等; 生命周期为:在python解释器启动时创建,在解释器关闭时销毁 全局名称空间:除了内置的,函数内的都是在全局名称空间中 生命周期为:在执行文件时,创建全局名称空间,所有文件中的代码全部执行完毕后,销毁名称空间(即解释器关闭时) 局部名称空间:只要在函数内的名称空间就是局部的 生命周期为:调用函数时创建,函…
目录 嵌套函数 定义 名称空间的三大类(只存变量名) 名称空间加载顺序 变量名的查找顺序为 作用域 嵌套函数 定义 函数内部定义的函数,无法在函数外部使用内部定义的函数. def f1(): def f2(): print('from f2') f2() f2() # NameError: name 'f2' is not defined def f1(): def f2(): print('from f2') f2() f1() ''' from f2 ''' 名称空间的三大类(只存变量名)…
python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类的数据属性是共享给所有对象 print(id(g1.camp)) #引用的地址是一样的 print(id(Garen.camp)) 输出结果为: 364617767096 364617767096 其中类的函数属性是绑定到所有对象 print(id(g1.attack)) #两个引用地址不一样 pr…
一.Python类的名称空间 class Student(object): School = '北京大学' def __init__(self): pass stu1 = Student() stu1.name = '小明' print(stu1.School) print(Student.name) #error type object 'Student' has no attribute 'name' 1.类可以调用对象的属性吗? 2.对象可以调用类属性吗? 通过上面的代码可以看出,类无法访…
Python的变量定义后都有自己的作用域,每个作用域内都有名字空间.名称空间就是变量名称与对象的关联关系.Python中使用变量名引用对象,需要使用该变量时,就在命名空间中进行搜索,获取对应的对象.从目前python的实现上来讲,内部使用了字典,但是并不保证以后会更改实现,所以说现阶段,命名空间是一个字典(dictionary),它的键就是变量名,它的值就是那些变量的值.在一个Python程序运行中,至少有4个scopes是存在的. 直接访问一个变量可能在这四个namespace中逐一搜索. L…
名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方 名称空间共3种,分别如下 locals: 是函数内的名称空间,包括局部变量和形参 globals: 全局变量,函数定义所在模块的名字空间 builtins: 内置模块的名字空间 不同变量的作用域不同就是由这个变量所在的命名空间决定的. 作用域即范围 全局范围:全局存活,全局有效 局部范围:临时存活,局部有效 查看作…
目录: 1.函数对象 2.函数嵌套 3.名称空间 4.作用域 函数是第一类对象 1.函数名是可以被引用: def index(): print('from index') a = index a() 2.函数名可以当做参数传递 def foo(x,y,func): print(x,y) func() def bar(): print('from bar') foo(1,2,bar) 结果: 1 2 from bar 3.函数名可以当做返回值使用 传参的时候没有特殊需求,一定不要加括号,加括号当场…
目录 函数对象 函数的嵌套 名称空间和作用域 内置名称空间 全局名称空间 局部名称空间 作用域 全局作用域 局部作用域 global和nonlocal 函数对象 在Python中,一切皆对象,函数也是一类对象.即函数也具有以下特性 1.可以被引用,赋值:将函数赋值给a # 定义一个self_max函数 def self_max(x, y): if x > y: return x return y a = self_max 2.可以当做函数的返回值:将函数f2当做函数f1的返回值 def f2()…