zoukankan      html  css  js  c++  java
  • 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() 内存的东西存入硬盘

  • 相关阅读:
    SQL0668N 由于表 "db2inst1.test" 上的原因代码 "3",所以不允许操作(解因为LOAD引起的LOAD暂挂状态锁)
    重装系统后,如何恢复DB2数据库?
    db2 导入导出命令大全
    解决tomcat启动时日志出现 javax.naming.NamingException: Invalid byte 1 of 1byte UTF8 sequence.的问题
    【fcntl系统调用】
    C++读书笔记之函数模板
    unix shell笔记
    用setsockopt()来控制recv()与send()的超时 【转】
    Linux守护进程的编程实现 [转]
    GDB调试core文件样例(如何定位Segment fault) 【转】
  • 原文地址:https://www.cnblogs.com/yangli0504/p/8781336.html
Copyright © 2011-2022 走看看