zoukankan      html  css  js  c++  java
  • Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别

    先看两个类的方法:

    >>> class nc():
    def __init__(self):
    self.name ='tester' #name变量加self    
    
    >>> class mc():
    def __init__(self): 
    name = 'tesster' #name变量不加self
    
    >>> nc = nc() #实例化nc()
    >>> nc.name #通过.操作符可以调用该方法的属性name,说明加self后的name是该方法的属性 attribute。
    'tester'
    
    >>> mc = mc() #实例化mc()
    >>> mc.name #尝试通过.操作符调用变量name,明显提示错误,说明不加self的变量不是该方法的属性,它是方法的局部变量。
    Traceback (most recent call last):
    File "<pyshell#33>", line 1, in <module>
    mc.name
    AttributeError: 'mc' object has no attribute 'name'

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

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

    self.xxx是全局的,xxx是局部的对于该方法有效。
    ---------------------
    原文:https://blog.csdn.net/jojoy_tester/article/details/54016309

  • 相关阅读:
    javascript 的继承实例
    [转载]编写高性能js
    弹出菜单
    xml xpath dta笔记
    jquery 学习笔记
    公用的css
    谷歌主页动画效果——利用视距暂留原理
    javascript 新知识
    ie6/7 bug大全
    javascript 原生实现 jquery live/delegate
  • 原文地址:https://www.cnblogs.com/liuyanhang/p/11088054.html
Copyright © 2011-2022 走看看