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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mardax/article/details/70886330

概述

类由一系列函数对象组成,在类中,函数对象称为方法,方法的第一个参数必须为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.__color

animal = Animal(5, 8)

animal.info()

print 'age =', animal._Animal__age, 'color =', animal._Animal__color


继承

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

多态

python的class支持多态,所有method都是动态bind
展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页