内置命名空间
#python解释器一启动就能认识
#内置名字再启动解释器时候就加载进去了
例如:input(),print(),len(),,,,,
全局命名空间
#是在程序从上到下加载的过程中以此加载到内存的
#放置了我们所有的函数名和变量名
局部命名空间
#函数内部定义的名字
#当函数被调用的时候,才会产生这个命名空间,随着这个函数的结束,又消失了
在局部:可以使用内内置和全局命名空间
在全局:可以使用局部命名空间的名字,但是不能用局部中使用
在内置:在内置是不能使用局部和全局的名字的,因为解释器的启动并不依赖与局部和全局命名空间
如果自己有的话,就不找上一级要,如果没有的话就找上一级要,上一级如果没有的话就会报错
def input():
print("小王要变强")
def print():
print(input())#函数名带括号,指的是函数的调用
print(input)#如果不带括号的话,输出的是input的内存地址
作用域
1.全局作用域-->作用在全局-->内置和名字空间都属于全局作用域
2.局部作用域-->作用在局部-->函数(局部空间里面的名字属于局部作用域)
#如果在局部声明了一个局部变量,那么就可以在全局里面使用
#全局使用了一个变量,在局部不能使用
a=1
def func(a):
a=a+1
return a
a=fun(a)#用这种方法增加了隐蔽性,一般在公司上班,避免使用global,就使用这种传参的方式