zoukankan      html  css  js  c++  java
  • python中若类属性与实例属性同名

    python类中若定义了一个类属性,可以通过“类名.类属性名“来得到并修改此类属性值;也可以通过“实例名.变属性名"来得到此类属性的值,但若试图通过“实例名.变属性名”这种方式来修改此类属性的值,不会达到预期效果,结果是类属性的值并未被更改,实例首先会创建一个与类属性同名且相等值的“实例属性”,再对此实例属性进行操作

    实例一:

    python代码:

    classCA:

    c=0

    def__init__(self):

    #self.c=0

    self.c+=3

    self.__class__.c+=1

    print"self.__class__.c="+str(self.__class__.c)

    print"self.c="+str(self.c)

    a=CA()

    CA.c=100

    b=CA()

    屏幕输出:

    self.__class__.c=1

    self.c=3

    self.__class__.c=101

    self.c=103

    实例二:

    python代码:

    classCA:

    c=0

    def__init__(self):

    self.__class__.c+=1

    printCA.c

    a=CA()

    printCA.c

    printa.c

    CA.c=100

    printCA.c

    a.c+=1

    printa.c

    屏幕输出:

    0

    1

    1

    100

    101

  • 相关阅读:
    Codeforces Round #564 (Div. 1)
    Codeforces Round #569 (Div. 1)
    SDOI2019R2游记
    BZOJ 3555: [Ctsc2014]企鹅QQ
    SDOI2019R1游记
    计数的一些东西
    多项式的各种操作
    BZOJ 5424: 烧桥计划
    Codeforces Round #545 (Div. 1)
    概率期望学习笔记
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377409.html
Copyright © 2011-2022 走看看