zoukankan      html  css  js  c++  java
  • python 类变量和实例变量

    python的类变量和实例变量,顾名思义,类变量是指跟类的变量,而实例变量,指跟类的具体实例相关联的变量,具体体现为self.x 等。实际要注意的类变量和实例变量之间的关联。和类方法可以通过类也可以通过实例访问类似,类变量既可以通过实例也可以通过类来访问。

    来看举例:

    class Person:
        name="aaa"
    
    p1=Person()
    p2=Person()
    p1.name="bbb" #这里修改了p1.name的引用,使其不再指向类变量,而成为一个实例变量
    print p1.name  # bbb
    print p2.name  # aaa
    print Person.name  # aaa

    类变量就是供类使用的变量,实例变量就是供实例使用的.

    这里p1.name="bbb"是实例调用了类变量,这其实和上面第一个问题一样,就是函数传参的问题,p1.name一开始是指向的类变量name="aaa",但是在实例的作用域里把类变量的引用改变了,就变成了一个实例变量,self.name不再引用Person的类变量name了.

    可以看看下面的例子:

    class Person:
        name=[]
    
    p1=Person()
    p2=Person()
    p1.name.append(1)   #p1.name依然指向类变量,所以对它进行的修改直接影响了类变量。
    print p1.name  # [1]
    print p2.name  # [1]
    print Person.name  # [1]
  • 相关阅读:
    0127 date dateformat calebdar
    0126 字符串缓冲区StringBuffer类 正则表达式
    0126 String类
    0125 java API object
    0125 匿名对象 内部类 包 代码块
    0123 final关键字,static 关键字
    0123 this关键字 super关键字
    0122面向对象 构造方法
    0122面向对象3 多态
    0120 面向对象2
  • 原文地址:https://www.cnblogs.com/sherylwang/p/5537778.html
Copyright © 2011-2022 走看看