1.面向过程编程

    核心是过程二字,过程值的是解决问题的步骤,即先干什么,再干什么然后在干什么

   

    基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式

    优点:复杂的问题流程化,进而简单化

         (一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)

    缺点:扩展性差 (即修改一个地方,要修改很多地方)

 

面向对象编程         现实世界中对象都归属某一类事物,任何对象都是某一类事物的实例

  核心对象二字,对象是特征与技能的结合体

    基于该思想编写程序就好比是在创造一个世界,你就是这个世界是上帝,存在的皆为对象,不存在的也可以创造出来,

     与面向过程机械式的思维方式形成鲜明对比, 面向对象更加注重对现实世界的模拟,是一种上帝式的思维方式。

    优点:可扩展性强。

        (对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。)

    缺点:编程的复杂度要高于面向过程

 

2.类与对象

    对象:是特征与技能的结合体                                                               #名称空间(容器)

    类:种类、分类、类别;是一系列对象相似特征与技能的结合体               #名称空间(容器)

        强调:站的角度不同,总结的类是截然不同的

   在现实世界中:先有的一个个具体存在的对象,让后随着发展才有了分类的概念

   在程序中:必须先定义类,后调用类来产生对象

套路总结:

现实世界中总结对象-----》抽取相似之处,得到现实世界中的类---》定义为程序中的类-----》调用类,产生程序中的对象

 

 

一.在程序中先定义类:

class OldboyStudent:

    school=‘oldboy’

    def choose_course(self):

        print('is choosing course')

强调:

        1.类体代码会在类定义阶段就立即执行,会产生一个类名称空间,将类体代码执行过程中产生的名字都丢进去

        2.python为我们提供专门访问属性(名称空间中的名字)的语法,点后的都是属性

点后的都是属性

    # print(OldboyStudent.__dict__)   #查看类名称空间里的名字
    # print(OldboyStudent.__dict__['school']) #类变量名的内存地址
    # print(OldboyStudent.__dict__['choose_course'])#类函数的内存地址
    # OldboyStudent.__dict__['choose_course']() #函数内存地址加()就可以调用

        
    # print(OldboyStudent.school) #OldboyStudent.__dict__['school']   缩写版

    # print(OldboyStudent.choose_course)         #OldboyStudent.__dict__['choose_course']

 

 

    # OldboyStudent.choose_course(111) #类里面函数可以直接当普通函数传值调用

 

 

    3.类的本身其实就是一个容器/名称空间,从类的名称空间中增/删/改/查名字

    4.类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,

          意味着需要完全遵循函数的参数规则,该传几个值就传几个

 

    # OldboyStudent.country='China'           #OldboyStudent.__dict__['country']='China'               #增加
    # OldboyStudent.country='CHINA'         #OldboyStudent.__dict__['country']='China'         #修改
    # del OldboyStudent.school                                                                                                            #删除

 

    # print(OldboyStudent.__dict__)

二.后调用类产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例

实例或对象  stu1(对象)