分享

Python 类中方法的内部变量,命名加''''self.''''变成 self.xxx 和不加直接 xxx 的区别

 qweertt4747 2018-02-27

先看两个类的方法:

  1. >>> class nc():  
  2.     def __init__(self):  
  3.         self.name ='tester'  #name变量加self     
  4.       
  5. >>> class mc():  
  6.     def __init__(self):   
  7.         name = 'tesster'     #name变量不加self    
  8.   
  9. >>> nc = nc()  #实例化nc()  
  10. >>> nc.name    #通过.操作符可以调用该方法的属性name,说明加self后的name是该方法的属性 attribute。  
  11. 'tester'  
  12.   
  13. >>> mc = mc()  #实例化mc()  
  14. >>> mc.name    #尝试通过.操作符调用变量name,明显提示错误,说明不加self的变量不是该方法的属性,它是方法的局部变量。  
  15. Traceback (most recent call last):  
  16.   File "<pyshell#33>", line 1, in <module>  
  17.     mc.name  
  18. AttributeError: 'mc' object has no attribute 'name'  
python中类方法的属性需要加self,也就是self.xxx,这个是方法的属性!

类方法的变量不加self,也就是xxx,这个是方法的局部变量,不能被调用,只能在该方法内部使用!

在类中,self只能在方法中使用表示该方法的实例属性,也就是每个实例可以设置不同的值而不会相互影响;在方法下不使用self表示是该方法的局部变量,只能在该方法内使用。

self.xxx是全局的,xxx是局部的对于该方法有效。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多