Python之旅.第五章.面向对象

一、面向对象编程

1、面向过程编程

    核心是”过程“二字,过程指的是解决问题的步骤,即先干什么再干什么

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

 

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

    缺点:可扩展性差

 

2、面向对象

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

    基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种

    上帝式的思维方式

 

    优点:可扩展性强

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

 

二、对象与类

1、对象是特征与技能的结合体,那类就是一系列对象相同的特征与技能的结合体

2、在现实世界中:一定先有对象,后来随着人类文明的发展总结出的类;对象是具体存在的,而类只是一种抽象概念

3、在程序中,务必保证:先定义类,后调用类来产生对象

#根据现实世界中的对象归纳现实世界的类,然后在程序中定义类,之后调用这个定义的类才产生程序中的对象

 

现实生活中的对象:

    对象1

        特征:

            school="Oldboy"

            name="马冬梅"

            age=18

            sex="female"

        技能:

            学习

            选课

 

    对象2

        特征:

            school="Oldboy"

            name="甜蜜蜜"

            age=21

            sex="male"

        技能:

            学习

            选课

 

    对象3

        特征:

            school="Oldboy"

            name="原石开"

            age=22

            sex="male"

        技能:

            学习

            选课

 

现实生活中的老男孩学生类:

     相同的特征

            school="Oldboy"

     相同的技能

            学习

选课

 

1、程序中的类

class OldboyStudent:  #用驼峰体表示类名, 变量名不推荐驼峰体

    # 用变量表示特征

    school="Oldboy"

 

    #  用函数表示技能

    def learn(self):

        print('is learning...')

 

    def choose(self):

        print('choose course...')

 

注意:在定义类的阶段会立刻执行类体内的代码,然后将产生的名字存放于类名称空间中

#名称空间用字典存数据

 

print(OldboyStudent.__dict__)  # . 后面的是属性

print(OldboyStudent.__dict__['school'])

print(OldboyStudent.__dict__['learn'])

OldboyStudent.__dict__['learn'](123)

 

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

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

OldboyStudent.learn('xxx')

OldboyStudent.learn('xxx')

 

OldboyStudent.country='China'

OldboyStudent.school='偶的博爱'

 

del OldboyStudent.country

print(OldboyStudent.__dict__)

 

f.flush() 内存的东西存入硬盘

原文地址:https://www.cnblogs.com/yangli0504/p/8781336.html