注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

旷世的忧伤

不与夏虫语寒,不与曲人语道,因为生命缺乏言说的条件......

 
 
 

日志

 
 

Python类的变量和对象的变量  

2014-10-23 09:45:53|  分类: Python示例代码 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
类的变量和对象的变量,它们根据是类还是对象 拥有 这个变量而区分。

类的变量 由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。

对象的变量 由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。

 01 #! /usr/bin/env python
02 # -*- coding: utf-8 -*-
03
04 # *************************************************************
05 #     Filename @  objvar.py
06 #       Author @  Huoty
07 #  Create date @  2014-10-23 08:50:34
08 #  Description @  类的变量与对象的变量
09 # *************************************************************
10
11 class Person:
12    '''Represents a person.'''
13    population = 0 # 人口
14
15    def __init__(self, name):  # 构造函数, self 是指实例化的对象本身
16        '''Initializes the person's data.'''
17        self.name = name
18        print "(Initiaalizing %s)" % self.name  # 对象的变量
19
20        # When this person is created, he/she
21        # adds to the population
22        Person.population += 1  # 类变量
23
24    def __del__(self):  # 析构函数
25        '''I am dying.'''
26        print "%s says bye." % self.name
27
28        Person.population -= 1
29
30        if Person.population == 0:
31            print "I am last one"
32        else:
33            print "There are still %d pepple left." % Person.population
34
35    def sayHi(self):
36        '''
37        Greeting by the person.
38        Really, that's all it does.
39        '''
40        print "Hi, my name is %s." % self.name
41
42    def howMany(self):
43        '''
44        Prints the current population.
45        '''
46        if Person.population == 1:
47            print "I am the only person here."
48        else:
49            print "We have %d persons here." % Person.population
50
51 # Script starts from here
52
53 swaroop = Person("Swaroop")
54 swaroop.sayHi()
55 swaroop.howMany()
56
57 kalam = Person("Abdul Kalam")
58 kalam.sayHi()
59 kalam.howMany()
60
61 swaroop.sayHi()
62 swaroop.howMany()
  
参考《简明 Python 教程》:http://sebug.net/paper/python/ch11s06.html
  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017