Python 面向对象编程基础

开始Python的复习!(以前学的忘了好多-_-)
主要参考的是Github上的一个项目:https://github.com/jackfrued/Python-100-Days
文章主要是对该项目中的内容进行学习 穿插一点自己的学习想法等内容~

基本的那些变量类型、数据类型、循环等概念就不复习啦 直接从面向对象编程开始!

面向对象

与面向过程的区别

以小明早上去上学这件事为例:
· 面向过程比较重视的是完成这件事情经过了哪些步骤,小明妈妈叫小明起床、小明起床、小明吃早饭、小明爸爸送小明去上学(这样的指令可以完成小明去上学这件事情,但只要其中只要有一点东西发生变化【执行人或功能等】整个流程都会随之发生变化,在大型问题中非常不方便)
· 面对对象比较重视的是完成这件事情有哪些人参与,分别执行了哪些功能:妈妈(叫小明起床、做早饭等)、小明(起床、吃早饭等)、小明爸爸(送小明去上学等)。面向对象的编程在解决实际问题时可以很好的完成这件事,即使其中步骤有所变化也只涉及局部相关对象及其属性的更改,不存在大改的情况。这也是现在很受欢迎的原因。

类和对象

类可以看作是设计图,对象是依照类设计的实例。在面向对象编程的世界中一切皆对象。
对象都有属性和行为(方法),将很多对象的共同特征和行为进行抽象就可以得到抽象概念类。
类是抽象的概念,对象是具体的东西。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都提取出来后,就可以定义出一个叫做类的东西。

类的定义

class Student(object):
    # __init__是一个特殊方法用于在创建对象时进行初始化操作
    # 通过这个方法我们可以为学生对象绑定name和age两个属性
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def study(self, course_name):
        print('%s正在学习%s.' % (self.name, course_name))

    # PEP 8要求标识符的名字用全小写多个单词用下划线连接
    # 但是部分程序员和公司更倾向于使用驼峰命名法(驼峰标识)
    def watch_movie(self):
        if self.age < 18:
            print('%s只能观看《熊出没》.' % self.name)
        else:
            print('%s正在观看岛国爱情大电影.' % self.name)

创建和使用对象

实际上与之前所学习的语言中的数据类型等非常相似,例如int a = 10(就是规定创建的对象的属性)

stu1 = Student('小猪佩奇', 5)
# 给对象发study消息
stu1.study('Python程序设计')

面向对象的三大特征:封装 继承 多态

封装:相当于功能的集成,在实际使用的时候只需要传入参数即可直接调用功能,不需要再写一次源代码(与函数类似,但比函数包含的信息更加丰富)【确保对象中的数据安全】
继承:当对象执行的功能在原来的基础上有所增加或改进时,不需要更改原来的东西,直接在原来的蓝图上增加新东西构成新的蓝图即可。【保证了对象的可扩展性】
多态:字面上理解是多种形态,狗(狼狗/藏獒/哈士奇/阿拉斯加等)一个对象可以以不同的形态呈现【保证了程序的灵活性】

posted @ 2021-05-27 19:43  芋圆院长  阅读(55)  评论(0编辑  收藏  举报