Chinaunix首页 | 论坛 | 博客
  • 博客访问: 821014
  • 博文数量: 97
  • 博客积分: 3042
  • 博客等级: 中校
  • 技术积分: 1610
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-21 11:48
文章存档

2015年(1)

2014年(3)

2013年(4)

2012年(43)

2011年(44)

2010年(2)

分类: LINUX

2012-02-09 15:24:22

python也是一门面向对象编程的语言,也有类和对象的说法,这里的许多概念和C++,Java里面一样,因此不再详细说明。
 
类的创建
python中的类由变量和函数两部分组成,类中的变量称之为成员变量,类中的函数称之为成员函数。
和C++中定义类一样,python中也是用class 定义一个类,格式为 class 类名 :,类名的首字母一般要大写。
类将需要的变量和方法组合在一起称之为封装。
类的创建示例:
class Student:
      def information(self):
          print "I am a student!"
 
对象的创建
if __name__ == "__main__":
   stu = Student()
   print stu.information()
输出:I am a student!
 
属性和方法
类的属性分为公有和私有属性。类的私有属性不能被类之外的函数调用,类的属性作用范围完全取决于属性的名称。如果函数,方法或者属性的名字前面以两个下划线开始,则表示私有属性。没有以下划线开始的表示私有属性,python中没有保护属性,这点和C++不一样。
python中的属性分为实例属性和静态属性。实例属性是以self作为前缀的属性。__init__即为python的构造函数。如果__init__方法里定义的变量也没有以self作为前缀,则该变量只是普通的局部变量。类中其他方法定义的变量也属于局部变量。
在python中静态变量称之为静态属性。可以被类直接调用而不需要实例化对象调用。
下面示例实例属性和类属性的区别:
class Fruit:
      price = 0                                             #类属性
     
      def __init__(self):
          self.color = "red"                                #实例属性
          zone = "China"                                    #局部变量
 
if __name__ == "__main__":
      print Fruit.price                                     #是类变量输出:0
      apple = Fruit()    
      print apple.color                                     #输出:red
      Fruit.price = Fruit.pricr + 10                        #输出:10
      print "apple's price:" + str(apple.price)             #注意强制转换
 banana = Fruit()
 print "banana's price:" + str(banana.price)                #输出:10
 
注意:类的外部不能直接访问私有属性,如果把corlor改为__corlor,当执行下列语句时,python解释器不能识别__corlor属性。
    print fruit.__corlor
python 提供了直接访问私有属性的方法,用于测试和调试:
    instance.__classname__attribute
    instance表示示例化对象, classname表示类名, attribute表示私有属性。
 
演示访问私有属性(由于存在安全问题,所以不提倡这样使用):
class Fruit:
      def __init__(self):
           self.__color = "red"                               #私有属性
if __name__ == "__main__":
      apple = Fruit()
      print apple.__Fruit__color
 
类提供了一些内置属性,用于管理类的内部关系,例如,__dict__ , __base__ , __doc__等。
下面演示常用内置属性使用方法示例:
class Fruit:
     def __init__(self):
         self.__color = "red"
class Apple(Fruit):                                           #Apple 继承了Fruit
     pass
 
if __name__ == "__main__":
     fruit = Fruit()
     apple = Apple()
     print Apple.__bases__                                    #输出基类组成的元组
     print apple.__dict__                                     #输出属性组成的字典
     print apple.__module__                                   #输出类所在的模块名
print apple.__doc__ 
 
 
阅读(1102) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~