• 面向对象与类


    # 面向过程:
    # 重过程:解决问题,考虑的是解决问题的流程
    # 解决问题的思路清晰,但拓展性不强

    # 面向对象:
    # 重对象:解决问题,找到解决问题的对象
    # 解决问题的思路可能不止一条(理解解决问题的难度增加),但拓展性强

    # Python语言:面向对象的语言
    # Python用面向过程与面向对象两种方式解决问题

    # 函数与方法:都是解决问题的功能
    # 函数:通过函数名直接调用
    # 方法:通过附属者.语法来调用

    # import re
    # print(re.S)

    # import test
    # print(test.num)

    名称空间

    内置 | 全局 | 局部

    能产生名称空间的有: 文件 | 函数 | 类

    能产生名称空间的对象有__dict__这个值,通过这个值访问到名字的地址与地址对应的关系

    面向对象

    寻求一个类似函数与文件对象,可以额外添加功能与属性的对象

    类:具有相同特征与行为个体集合的抽象

    对象:有特征、行为的具体个体,就是类 的具体体现

    语法:

    类的声明:

    class  类名:      #class定义语法的关键字

        pass

    对象的产生:对象的实例化

    对象1=类名()

    对象2=类名()

    对象3=类名()

    学习重点:自定义类的实例化对象

    类也有名称空间,定义类的(也就是类的类)是元类

    类拥有自己的名称空间,类的对象也拥有自己的名称空间

    所有可以通过 . 语法添加或使用属性和方法

    调用类的时候,类中的函数和语句才会被执行触发

    class People:
      identify = '人类'
      def sleep(self):
        print('睡觉')
      print(456)
    # print(People.__dict__)
    p1 = People()
    p2 = People()

    # p1,p2虽然能访问identify,但identify属于People类,只有一份
    print(p1.identify)
    print(p2.identify)

    # p1,p2虽然能访问identify,但identify属于People类,只有一份
    print(p1.identify)
    print(p2.identify)

    # p1修改的并不是People的identify,相对于给自己添加一个identify属性
    p1.identify = '新人类'
    print(p1.__dict__, p1.identify)
    p1.__dict__.clear()
    print(p1.identify)
    # p2自己没有,还是访问的类的
    print(p2.identify)

    # 属性的访问顺序:优先加载自身的名字,如果没有再考虑类的

  • 相关阅读:
    win7常用快捷键
    java中构造代码块、方法调用顺序问题
    eclipse项目改为maven项目导致svn无法比较历史数据的解决办法
    linux配置Anaconda python集成环境
    DataFrame对行列的基本操作实战
    驱动:电阻屏触摸芯片NS2009
    读书笔记:代码大全(第二版)
    资料:磁角度传感器芯片
    经验:FatFs文件系统实时写入
    笔记:CAN收发器-TJA1051T与TJA1051T/3调试总结
  • 原文地址:https://www.cnblogs.com/SlookUp/p/10723564.html
Copyright © 2020-2023  润新知