写点什么

python 中封装和继承

作者:乔乔
  • 2022-11-19
    辽宁
  • 本文字数:892 字

    阅读完需:约 3 分钟

三大要素

封装,继承和多态是面向对象编程的三大要素。

封装

一个类包含数据成员和成员方法,将类做成封装体,把类转换成对象进行使用,可以调用该对象的数据成员和对象方法。这个办法是比较常用的。

继承

  • 继承是用来实现代码复用和设计复用的机制,是面向对象程序设计的重要特性之一。设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。

  • 在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称为子类或派生类。派生类可以继承父类的成员。如果需要在派生类中调用基类的方法,可以使用内置函数super()或者通过“基类名.方法名()”的方式来实现这一目的。

  • Python 支持多继承,如果父类中有相同的方法名,而在子类中使用时没有指定父类名,则 Python 解释器将从左向右按顺序进行搜索。

例子

父级


class Person(object):def_init_(self,name=",age=20,sex=man'):selfsetName(name)self.setAge(age)self.setSex(sex)


def setName(selfname):    assert isinstance(name, str), 'name must be string. self.name=name
def setAge(self,age): assert isinstance(age,int),'age must be integer. def setSex(self, sex): assert sex in (man','woman'), 'sex must be"man" or "woman"" self.__sex= sex def show(self): print('Name:', self._name) print('Age:', self._age) print('Sex:', self._sex)
复制代码


复制代码子级 class Teacher(Person):def_init_(self,name=",age=30,sex=man,department=Computer'):super(Teacher,self). init (nameagesex)selfsetDepartment(department)


def setDepartment(self,department):    assert isinstance(department,str),'department must be a string. self.     department=department 
def show(self): super(Teacher,self).show() print(Department:,self. department)
复制代码


复制代码其中 super(Teacher,self). init (nameagesex)复制代码此处可以用 Person.init__(self,name, age, sex)复制代码替换。父级存在的对象子级也可以重复命名,相当于把从父级继承过来的对象进行覆盖,这一行为是被允许的。


发布于: 刚刚阅读数: 3
用户头像

乔乔

关注

平安喜乐,一切顺遂 2022-07-01 加入

一个热爱技术,热爱生活的人

评论

发布
暂无评论
python中封装和继承_11月月更_乔乔_InfoQ写作社区