文档详情

Python程序设计第6章-面向对象程序设计.ppt

发布:2018-10-09约8.56千字共30页下载文档
文本预览下载声明
第6章 面向对象程序设计 针对大型软件的设计而提出,使得软件功能相对独立,能很好地做到代码重用。 Python完全采用了面向对象的思想,是真正面向对象的脚本语言,完全支持面向对象的基本功能,如封装、继承、多态以及对基类方法的覆盖或重写。 Python中对象的概念很广泛,对象不一定是某个类的实例。字符串、列表、字典、元组等内置数据类型不是类,但具有和类相似的语法。 创建类时用变量表示属性称为成员变量或成员属性,用函数表示方法称为成员函数或成员方法,成员属性和成员方法都称为类的成员。 6.1 类的定义与使用 Python使用class保留字来定义类,类名的首字母一般要大写。如, class Car: #新式类必须有至少一个基类 def infor(self): print( This is a car ) 类的方法至少有一个参数self,并且必须是方法的第一个参数,self代表将来要创建的对象本身。在访问类的实例属性时需要以self为前缀。 6.1 类的定义与使用 属性有两种,一种是实例属性,另一种是类属性。实例属性是在伪构造函数__init__中定义的,定义时以self作为前缀;类属性是在类中方法之外定义的属性。在主程序中(在类的的外部),实例属性属于实例(对象)只能通过对象名访问;类属性属于类可通过类名访问。 在类的方法中可以调用类的其它方法,可以访问类属性、对象属性。 类和对象都可以动态地增加成员 6.1 类的定义与使用 class Car: price=100000 #定义类属性 def __init__(self, c): self.color=c #定义实例属性 car1=Car(Red) car2=Car(Blue) print car1.color, Car.price Car.price=110000 #修改类属性 Car.name=QQ #增加类属性 car1.color=Yellow #修改实例属性 print car2.color, Car.price, Car.name print car1.color, Car.price, Car.name 6.1 类的定义与使用 如果属性名以__开头则是私有属性,否则是公有属性。私有属性在类外不能直接访问。Python提供了访问私有属性的方式,可用于程序的测试和调试。 私有属性是为了数据封装和保密而设的属性,只能在类的成员方法(称为类的内部)中使用,通过self访问。公有属性是可以公开使用的,既可以在内部使用,也可以在外部(通过对象名访问)使用。 6.1 类的定义与使用 class A: def __init__(self, value1 = 0, value2 = 0): self._value1 = value1 self.__value2 = value2 def setValue(self, value1, value2): self._value1 = value1 self.__value2 = value2 def show(self): print self._value1 print self.value2 a = A() a._value1 0 a._A__value2 0 6.1 类的定义与使用 Python 用下划线作为变量前缀和后缀来表示特殊成员: _xxx:不能用from module import *导入,这样的对象叫做保护变量,只有类对象和子类对象能访问这些变量; __xxx__:系统定义名字 __xxx:类中的私有成员,只有类对象自己能访问,连子类对象也不能访问到这个成员。但在对象外部可以通过对象名._类名__xxx来访问。Python中没有纯粹的C++意义上的私有成员。 在交互模式下,_表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果。 6.1 类的定义与使用 class Fruit: def __init__(self): self.__color=Red self.price=1 apple=Fruit() apple.price=2 print apple.price, apple._Fruit__color #访问私有成员 apple._Fruit__color=Blue #访问私有成员 print apple.price, apple._Fruit__color #print(apple.__color
显示全部
相似文档