详解Python变量与赋值,或许是你需要的

  
  前言   
  

  Python是一门独特的语言,与C语言有很大区别,初学Python很多萌新表示对变量与赋值不理解,学过C的都知道,给变量赋值时,需要先指定数据类型,同时会开辟一块内存区域,用于存储值,例如:   

  <前>   int  a =, 1;   之前   

  一个就是内存空间中的一小块区域,就像是一个大房间里面的一个小盒子,赋值就是把整数1装载到盒子里面。   

  

  现在给变量一个重新赋值   

  <前>   a =, 2;   之前   

  盒子依然是那个盒子,也就是说内存地址没有变,只是该段内存中的值变了,变成了2。   

  

  再来看:   

  <前>   int  b =,;   之前                  详解Python变量与赋值,或许是你需要的            

  当把变量一个赋值给另外一个变量b时,相当于把值拷贝了一份传递给变量b, b是新开辟的一段内存区域   

  

  而在Python中,变“量”的严格叫法是“名字(名称)”,也可以理解为标签,就像我们人的姓名一样,名字就是挂在人身上的一个标签。   

  <前>   ,在的在的在10   Traceback  (most  recent  call 最后一个):   File 才能“& lt; stdin>“, line  1,拷贝& lt; module> NameError:, name  & # 39;一个# 39;is  not 定义   之前   

  比如上面这段错误报的是名称& # 39;一个# 39;没有定义,而没有说成变量。   

  

  在Python中,给变量赋值就是相当于给对象贴标签,就像我们给人取名字一样,变量本身是没有任何意义的,它没有类型信息,真正的信息都在对象身上。   

  
  

  看个人简介   

     

  例如:   

  <前>   a =1   之前   

  Python内部首先会分配一段内存空间用于创建整数对象1,然后给这1个贴上名为一的标签。   

  

  然后执行   

  <前>   一个=2   之前   

  Python接着会在另一块内存区域创建整数对象2,然后把标签从1身上撕下来贴在2身上,此时,我们没法再通过一个来得到这1个值了。   

  

  现在把名字一个赋值给另外一个名字b   

  <前>   b =,   之前   

  2相当于在刚才的身上又贴了一个新的标签b,注意,这里和C语言是完全不一样的,定义b的时候不需要分配内存空间,这样我们既可以通过一个来访问2也可以通过b来访问2,访问的都是同一个对象,就好比我们给宝宝取名时既有小名也有大名,其实叫的都是同一个人。   

  

  虽然我们通常在Python中还是用“变量“的叫法(因为在编程语言中这是一种通用叫法),但是我们需要理Python中解的变量不同于其他语言,变量只是一个名字。   

  

  理解了Python中的变量与赋值后,再来看函数的参数传递,如下所示:   

  <前>   在祝辞祝辞,def  fun_a(一个):   …,,,,,a =, + 4…在祝辞祝辞,g =, 0祝辞祝辞祝辞,fun_a (g)在祝辞祝辞g0   之前   

  全局变量g传递给函数fun_a时,相当于函数中的参数一个也将作为标签贴在0上,随后一个被重新赋值了(=a + 4),相当于从0撕下标签一个贴到4身上,然后g依然还是0上面的标签。   

                 详解Python变量与赋值,或许是你需要的            

  再来看这个函数,传递的是一个列表对象   

  <前>   在祝辞祝辞,def  fun_b(名称):   ,,,,,,的名字[0],=,(& # 39;x # 39;,, & # 39; y # 39;】   ……在祝辞祝辞,n_list =,(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;]在祝辞祝辞,fun_b (n_list)在祝辞祝辞   在祝辞祝辞n_list   [[& # 39;x # 39; & # 39; y # 39;],, & # 39; b # 39;,, & # 39; c # 39;】   之前   

  与前面的步骤还是一样的,名字和n_list都是[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;]上的一个标签,只是列表中的第0个元素被重新赋值了,但是名字和n_list依然都贴在这个列表对象身上,虽然n_list的值更新了,但对象依然是原来那个对象。就好比张三和小张都是同一个人,现在给小张换件衣服时,其实就是给张三换件衣服,人还是那个人,只是它身上的东西发生了变化。   

详解Python变量与赋值,或许是你需要的