函数的作用域,名称空间,取值顺序

1,函数的名称空间:全局名称空间,局部名称空间(临时),内置名称空间
1>.全局名称空间:看到这个全字就明白他的意思了,全部的,所有的,整个的。意思就是某个变量或者函数,实际上翻译过来就是个地址,我在内存中的地址。这个地址谁都可以找到。只要把我的地址的代号(变量名或函数名)print出来,或执行一下函数,就可以把地址中的内容显示出来。我这个地址里面到底装的什么东西。你可以把门打开看啊,欢迎光临我的房间。那么代号和地址的这层关系,就是命名的关系。也叫作全局命名空间。把我房间的地址也就是索引号给你,我的在内存的地址很长,不可能叫他们这些人类打个地址去找我把。他们人类这么懒除非太阳从西边出来。
2>.局部名称空间,也叫临时名称空间。临时的,过年租个临时男朋友回家。不是长期的,用他的时候就给他开个空间出来,我要的东西在里面呢,我的宝物取出来了,芝麻关门。空间瞬间消失。有木有很玄幻。。。
3>.内置名称空间,内置的,内嵌的,python设置的。就是很强制形的。你用我的这程序,就非要给我留个空间出来把我强制发明的东西放进去。所以为什么电脑配置要买大点的呢,就像游戏一样,加载了里面自带很多功能。但是不得不说。没有这些内置的空间里面的东西。还能叫python吗?如print(), len(), max(), min(), sum()and so on.这些都是他们用C++语言设置好的,我要这些东西做什么。实现什么功能。如果想看源码,怎样一步一步实现这个的。好奇心很强的朋友可以去github找。

2,函数的作用域:全局作用域,局部作用域

3,取值顺序:就近原则:局部名称空间—–>全局名称空间——->内置名称空间 所谓就近,就是python中要找到这个值,因为他的代码是一行一行执行下来的,遇到一个变量或函数,我就要找到这个值到底是多少,如果找不到,他马上给你报错,下面的函数都执行不下去了,有个地方卡住了,就像堵车,一个路口堵住了,后面还能过吗。那我怎样找呢,谁还跑去十万八千里去找啊,当然是谁离我近,我就是谁。他也很懒的。第一,如果在我自己空间中,比如临时名称空间中,那我就是我自己空间中的值。找不到咋办,去外面一层找(父函数,爷爷函数,祖父函数)。如果外面还是找不到,就在整个空间找,还是没有就是内置空间。再没有,python就会委屈地说,55主人对不起这个没有找到

函数的作用域,名称空间,取值顺序