python的类变量和成员变量用法实例教程

 更新时间:2014年08月25日 10:15:29   投稿:shichen2014  
这篇文章主要介绍了python的类变量和成员变量用法,是学习Python程序设计所必须牢固掌握的,需要的朋友可以参考下

本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值。分享给大家供大家参考。具体如下:

先看看下面这段代码:

class TestClass(object):
  val1 = 100
  
  def __init__(self):
    self.val2 = 200
  
  def fcn(self,val = 400):
    val3 = 300
    self.val4 = val
    self.val5 = 500 
 if __name__ == '__main__':
  inst = TestClass()
   
  print TestClass.val1
  print inst.val1
  print inst.val2
  print inst.val3
  print inst.val4  
  print inst.val5

这里,val1是类变量,可以由类名直接调用,也可以有对象来调用;
val2是成员变量,可以由类的对象来调用,这里可以看出成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;
val3不是成员变量,它只是函数fcn内部的局部变量;
val4和val5也都不是成员变量,虽是以self.给出,但并没有在构造函数中初始化。

再看看下面的代码(#号后面的是运行结果):

inst1 = TestClass()
inst2 = TestClass()

print TestClass.val1 # 100
print inst1.val1   # 100

inst1.val1 = 1000  
print inst1.val1   # 1000
print TestClass.val1 # 100

TestClass.val1 =2000 
print inst1.val1   # 1000
print TestClass.val1 # 2000

print inst2.val1   # 2000   

inst3 = TestClass() 
print inst3.val1   # 2000

可以发现:python的类变量和C++的静态变量不同,并不是由类的所有对象共享。类本身拥有自己的类变量(保存在内存),当一个TestClass类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;而且,通过对象来修改类变量,并不会影响其他对象的类变量的值,因为大家都有各自的副本,更不会影响类本身所拥有的那个类变量的值;只有类自己才能改变类本身拥有的类变量的值

希望本文所述实例对于大家理解和掌握Python的类变量和成员变量用法有所帮助。

相关文章

  • pytorch transform数据处理转c++问题

    pytorch transform数据处理转c++问题

    这篇文章主要介绍了pytorch transform数据处理转c++问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • python读取各种文件数据方法解析

    python读取各种文件数据方法解析

    这篇文章主要为大家详细介绍了python读取各种文件数据方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • python openpyxl打开文件关闭问题

    python openpyxl打开文件关闭问题

    这篇文章主要介绍了python openpyxl打开文件关闭问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 完美处理python与anaconda环境变量的冲突问题

    完美处理python与anaconda环境变量的冲突问题

    这篇文章主要介绍了完美处理Python与anaconda环境变量的冲突问题,对anaconda感兴趣的同学,可以参考下
    2021-04-04
  • 基于python实现数组格式参数加密计算

    基于python实现数组格式参数加密计算

    这篇文章主要介绍了基于python实现数组格式参数加密计算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python使用xlrd和xlwt批量读写excel文件的示例代码

    Python使用xlrd和xlwt批量读写excel文件的示例代码

    这篇文章主要介绍了Python使用xlrd和xlwt批量读写excel文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • linux环境下安装pyramid和新建项目的步骤

    linux环境下安装pyramid和新建项目的步骤

    这篇文章简单介绍了linux环境下安装pyramid和新建项目的步骤,大家参考使用
    2013-11-11
  • Python基础之函数原理与应用实例详解

    Python基础之函数原理与应用实例详解

    这篇文章主要介绍了Python基础之函数原理与应用,结合具体实例形式详细分析了Python函数的定义、原理、参数、返回值、嵌套等相关概念与使用技巧,需要的朋友可以参考下
    2020-01-01
  • Python turtle实现贪吃蛇游戏

    Python turtle实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了Python turtle实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Python根据指定文件生成XML的方法

    Python根据指定文件生成XML的方法

    这篇文章主要介绍了Python根据指定文件生成XML的方法,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06

最新评论