关闭

Python中的类变量和成员变量

标签: Python
43511人阅读 评论(9) 收藏 举报
分类:

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

先看看下面这段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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.给出,但并没有在构造函数中初始化。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;而且,通过对象来修改类变量,并不会影响其他对象的类变量的值,因为大家都有各自的副本,更不会影响类本身所拥有的那个类变量的值;只有类自己才能改变类本身拥有的类变量的值
7
3
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Python类变量与成员变量

python 的类中,主要会使用的两种变量:类变量与成员变量。类变量是类所有实例化对象共有的,而成员变量是每个实例化对象自身特有的,下面通过两个小程序来说明一下。
  • u013940664
  • u013940664
  • 2016-12-18 23:19
  • 3602

python的类变量和成员变量

先看看python类的类变量和成员变量。见下面代码: class TestClass(object): val1 = 100 def __init__(self): ...
  • lc_910927
  • lc_910927
  • 2014-08-22 15:55
  • 5677

类中静态成员变量和普通变量的区别——实例代码(VS2010)

  • 2017-12-11 15:51
  • 1.95MB
  • 下载

java 使用类作为成员变量

  • 2010-06-21 09:05
  • 59KB
  • 下载

038集-Intent类的重要成员变量

  • 2015-10-25 15:14
  • 28.61MB
  • 下载

实现一个求解一元二次方程的类,该类包含三个成员变量和一个求解一元二次方程解的函数,该函数需要抛出异常(1.无解的异常 2二次项系数为0的异常))

  • 2015-05-25 23:28
  • 5KB
  • 下载

C++ 静态成员变量 嵌套类分配回收内存

  • 2013-04-28 17:32
  • 1KB
  • 下载

C++ 包含类两个类互相调用彼此的类成员变量和方法

  • 2017-09-13 16:16
  • 5.47MB
  • 下载

类向导使用(为消息添加响应函数、关联成员变量)

  • 2009-10-31 15:54
  • 20.03MB
  • 下载

类中的成员变量

  • 2012-04-28 00:10
  • 968B
  • 下载
    个人资料
    • 访问:228621次
    • 积分:2967
    • 等级:
    • 排名:第13711名
    • 原创:87篇
    • 转载:94篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论