zoukankan      html  css  js  c++  java
  • 面向对象的解释和属性查找的方式解读

    1.面向对象

    1.面向过程编程

        核心:面向过程的核心就是过程。过程讲究顺序,即先干什么在干什么。基于面向过程的编程好比一条工作的流水线,是一种机械的思维方式。

        优缺点:可以把复杂的过程简单化,流程化;他的扩展性很差。

    2.面向对象编程

        核心:面向对象的核心就是对象。对象就是指特征和行为的集合体,基于对象编程好比在创造一个世界,而你扮演的角色就是上帝,这是一种上帝的思维模式。

        优缺点:编程的复杂度明显高于面向过程的复杂度;但是他的可扩展性很强。

    2.名称操作空间

    import re
    
    print(re.__dict__)
    
    
    
    def fn():
        pass
    print(fn.__dict__)

    3.类与对象

    1.对象:现实中具体的实际存在的事物,也就是抽象出的类的具体表现。

    2.类:具有点沟通特征和行为的事物集合体的抽象。

    # 类的声明:
    '''
    class 类名:  # class定义类语法的关键字
        pass
    '''
    
    # 对象的产生: 对象的实例化
    '''
    对象1 = 类名()
    对象2 = 类名()
    对象3 = 类名()
    '''
    
    # 类与对象都有自己独立的名称空间,每一个被实例化出来的对象,名称空间也是各自独立
    # 所以类与对象都能额外添加 属性(变量) 和 方法(函数)
    
    # 重点:类一旦被加载(随着所属文件的加载就加载),就会进入类的内部执行类中的所有代码
    # 定义类
    
    class Student():
        pass
    
    # 产生一个对象
    
    stu = Student()
    
    
    # 给产生的对象添加属性
    
    stu.name = 'Bob'
    
    stu.age = 18
    
    stu.get_age = lambda age:age

    3.查找顺序

    class People:
        # 类自带(不同在外界额外添加)的属性与方法
        identify = '人类'
        def sleep(self):
            print('睡觉')
        
        
    p1 = People()
    p2 = People()
    
    p1.identify = '新人类'
    print(p1.identify)  # 访问自己的
    p1.__dict__.clear()  # 删除自己的后
    print(p1.identify)  # 访问类的
    
    print(p2.identify)  # p2没有自己的,访问类的
    
    # 重点:属性的访问顺序:优先加载自身的名字,如果没有再考虑类的
  • 相关阅读:
    活着就是幸福
    ibatis配置log4j输出sql语句等日志信息
    每天记录点点滴滴
    SSH整合 创建SessionFactory
    活着
    最经典的智力题
    struts整合spring整合hibernate
    让MyEclipse里的Tomcat自动reloadable
    明天就会有阳光...
    数据表字段为空时的判断
  • 原文地址:https://www.cnblogs.com/wanglei957/p/10725560.html
Copyright © 2011-2022 走看看