zoukankan      html  css  js  c++  java
  • 16.面向对象基础

    面向对象基础

    面向对象编程

    面向过程编程(一种编程思想):类似于工厂的流水线,一步一步的完成每个工作.

    • 优点:逻辑简单明了
    • 缺点:可扩展性差,牵一发而动全身

    面向对象编程也是一种思想,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式.

    其中对象的概念: 就是特征和技能的结合体

    面向对象编程: 定义出一个个鲜明独特的对象,然后通过对象之间的交互编程来解决问题.

    • 优点:可扩展性强
    • 缺点:编程的复杂程度要高于面向

    名称空间

    能产生名称空间的有:文件 | 函数 | 类
    能产生名称空间的对象有__dict__这个值,通过该这个值访问到名字与地址的对应关系

    def func():
        pass
    
    func.__dict__['index'] = 10000
    print(func.__dict__)
    属性:
    print(func.__dict__['index'])
    print(func.index)
    
    方法:
    func.add = lambda n1, n2: n1 + n2
    print(func.__dict__)
    print(func.add(10, 20))
    

    类与对象

    类(类别):一系列具有相同特征和技能的对象

    现实世界中先有对象,后有类.

    python中先定义好类,才有实例化对象.

    函数定义阶段,只检测语法,不执行代码(牢记)
    类的定义阶段,会运行代码(牢记)
    

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

    对象定制独有的特征

    通过实例化对象自己的名称空间可以给实例化对象定制独有的特征:

    1. 我们在类内部定义一个__init__方法,这个方法会在实例化对象时自动触发,会产生实例化对象的名称空间,并且可以给实例化对象初始化其特有的属性,__init__中第一个参数self就是实例化对象.
    2. 属性的访问顺序:实例化对象优先加载自身的属性与方法,如果没有再考虑类的,类中也没有则报错

    类与对象的绑定方法

    1. 类中定义的函数是类的函数属性,类可以使用,相当于一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个
    2. 类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象用的,绑定的效果:绑定给谁,就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入
    3. 类中定义的函数都应该自带一个参数self
    • 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的
    • 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性

    类与数据类型

    lis = list([1,2,3])
    lis2 = list([1,2,3])
    lis.append(4)   # self自动传lis
    list.append(lis,4)	# 手动传lis
    

    对象的高度整合

    ​ 在类里面封装了一大堆特征/数据,然后又封装了一大堆方法(方法用来专门用来操控这些数据的),并且在这基础上对于不同对象,这些属性和方法会有不一样.

    总结为:对象其实就是一个高度整合的产物,整合数据与专门操作该数据的方法.

  • 相关阅读:
    Selenium(一):元素定位
    白盒测试系列(五)条件组合覆盖
    LDAP(轻型目录访问协议)
    Spring Intorduce、History and Design Philosophy
    CORS
    mysql创建用户并授权某个数据库
    Introduce Servlet 、Filter
    web.xml的简单解释以及Hello1中web.xml的简单分析
    ANNOTATION and analyse hello1.java
    Analysis of container and Injection in Java, their history and future.
  • 原文地址:https://www.cnblogs.com/yellowcloud/p/11046057.html
Copyright © 2011-2022 走看看