美文网首页
Python 面向对象

Python 面向对象

作者: 时光清浅_许你心安_ | 来源:发表于2018-08-12 17:07 被阅读0次
    • 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用;

    • 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中);

    • 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数;

    • 面向对象三大特性:封装、继承和多态。

    数据封装

    数据的封装,其实就是定义一些函数,来实现特定的功能,类的实例调用对应的方法就可以实现对应的功能,不需要关注函数的具体实现和数据的具体传递。

    继承

    OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。继承的作用就是子类可以继承到父类的所有功能。也可以重写对应的功能。

    多态

    多态的概念其实是在继承,重写的应用,我们可以通过继承派生出不同的子类,重写子类的具体实现,在调用时用他们的共同基类做参数,这样基类派生出的各种子类都可以传递进去,系统会根据传入的具体类型实现具体的功能。

    面向对象与面向过程的比较

    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
    面向过程编程——面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

    #面向对象
    class Student(object):
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def print_age(self):
            print('%s: %s' % (self.name, self.age))
    
    bart = Student('张三', 15)
    lisa = Student('李四', 16)
    bart.print_age()
    lisa.print_age()
    #面向过程
    def print_age(std):
        print('%s: %s' % (std['name'], std['age']))
    std1 = { 'name': '张三', 'age': 17 }
    std2 = { 'name': '李四', 'age': 18 }
    
    print_age(std1)
    print_age(std2)
    

    相关文章

      网友评论

          本文标题:Python 面向对象

          本文链接:https://www.haomeiwen.com/subject/xiwsbftx.html