命名空间和作用域

内置命名空间

  #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,就使用这种传参的方式

原文地址:https://www.cnblogs.com/648071634com/p/11649940.html