python——类——封装 继承 多态

来源:互联网 发布:轱辘软件 编辑:程序博客网 时间:2024/06/07 06:58

概述

类由一系列函数对象组成,在类中,函数对象称为方法,方法的第一个参数必须为self,表示当前实例对象
可把类理解为一个dict,key为方法名(string类型),value为方法
class Animal(object):    def __init__(self, age, color):    self.age =  age    self.color = color    def info(self):    print 'age = %s, color = %s' %(self.age, self.color)animal = Animal(5, 8)animal.info()

封装

类封装了一系列方法,且可通过一定规则约定方法访问权限

访问权限控制

python没有public,protected,private之类访问权限控制修饰词,python通过方法名约定访问权限

  • 普通名字,public
  • 以_前导名字,从语法上视为public,但约定俗称的意思是“可以被访问,但请视为private,不要随意访问”
  • 以__前导,以__后缀名字,特殊属性,public
  • 以__前导,不以__后缀名字,private
  • private名字不能被继承类引用
注:private不允许通过实例对象直接访问,本质是因为private属性名被python解释器改造成_类名属性名了,因此仍然可以通过_类名属性名访问private属性,但是不同版本的python解释器改造的规则不一定一致,因此不建议你这样访问private属性,因为代码不具有可移植性

class Animal(object):    def __init__(self, age, color):    self.__age =  age    self.__color = color    def info(self):    print 'age =', self.__age, 'color =', self.__coloranimal = Animal(5, 8)animal.info()print 'age =', animal._Animal__age, 'color =', animal._Animal__color


继承

旧的方式定义python类允许不从object类继承,但已经严重不推荐使用,任何时候,如果没有合适的类可以继承,就继承自object类
python支持多继承

多态

python的class支持多态,所有method都是动态bind
0 0