• day19


    面向对象基础:

    • 什么是面向对象?

      ​ 指的是一门编程思想

    • 面向过程编程:

      ​ 核心是“过程”二字,过程指的是做事的步骤,即先做什么再做什么

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

      优点:

      ​ 逻辑清晰,复杂的问题流程化,进而简单化

    ​ 缺点:

    ​ 可扩展性差

    • 面向对象编程:

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

      ​ 基于该编程思想编写程序,就好比在创造世界,一种上帝式的思维方式

      优点:

      ​ 可扩展性高

      缺点:

      ​ 编写程序的复杂程度要远高于面向过程编程思想

    • 优先使用面向过程还是面向对象?

      ​ 面向过程结合面向对象一起使用

    • 什么是类?

      ​ 类型、类别、分类

    • 先定义类,后调用类产生对象

    ​ 在现实世界中:

    ​ 对象就是一个个具体存在的事物,类时由人类文明的发展抽象总结出来的

    • 在程序中:

    ​ 必须遵循,先有类,再有对象

    类:

    • 对象是特征与技能的结合体

    • 类是一系列对象相同的特征与技能的结合体

    • 如何定义类:

    ​ 首先定义类,后调用类创建对象

    • 定义类的语法:

    ​ class 类名:

    ​ 对象相同的特征

    ​ 对象相同的技能

    ​ class:用来定义类的,class后跟的是时类名

    • 类名:类的名字,用来调用创造对象的

    • 注意:类名必须要遵循驼峰命名法,python在定义变量与函数时不推荐使用,但是在定义类时推荐使用

    • 在定义类发生的事情:

    ​ 1.类在定义时,会产生一个名称空间

    ​ 2.会把类内部所有的名字,扔进类的名称空间中

    • 注意:类在定义阶段就已经产生好了名称空间,执行python文件时会执行类内部的代码

    对象

    • 如何产生对象:

    ​ 语法:

    ​ 类名+()调用类产生对象

    • 名称空间的产生:

      ​ 1.类的名称空间在类定义阶段就已经产生了

    ​ 2.对象的名称空间,在调用类时产生

    • 问题:对象与对象之间的特征与技能一样
    • 解决:在类内部定义__init__函数

    ​ 中文翻译:为对象初始某些属性

    ___init__:会在调用类时,自动触发该函数

    • 调用类发生的事情:

    ​ 1.首先会产生一个空对象,就是产生“对象空名称空间”

    ​ 2.会自动触发类__init__功能的执行,将stu1以及调用类括号内的参数一同传入

    ​ 3.会把对象本身以及括号内参数一并传给___init__函数

    class OldboyStudent:
        def __init__(self,name,age,gender):
            self.name = name
            self.age = age
            self.gender = gender
            
    stu1 = OldboyStudent('nick', 20, 'male')
    
    print(stu1.__dict__)
    

    {'name': 'nick', 'age': 20, 'gender': 'male'}

    在python中,用变量表示特征,用函数表示技能,因而具有相同特征个技能的一类事物就是类,对象是则是这一类事物中的具体一个

    对象与类的查找顺序

    对象与类的查找顺序:

    ​ 1.对象.属性,若对象本身有,则优先查找对象自己的

    ​ 2.若对象本身没有,则去类里面找,若类没有,则报错。

    对象绑定方法的特殊之处

    类内部的函数主要是给对象用的:

    ​ 1.由类来调用类内部的函数,该函数只是一个普通的函数

    ​ 普通函数需要接受几个参数就得传入几个参数

    ​ 2.由对象来调用称之为对象的绑定方法

    ​ 不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中

    • 对象的绑定方法,是由对象来调用的,特殊之处就是把对象当做第一个参数传入该方法中

    ​ 对象之间与类的方法是一样的

    python中一切皆对象

    int,float,str,list,tuple,dict,set,bool

    在python中一切皆对象

  • 相关阅读:
    C# 之 FTPserver中文件上传与下载(一)
    net-snmp-5.7.3配置编译安装
    Linux下编译安装Apache Http Server
    linux回收站设计
    String封装——读时共享,写时复制
    4-python学习——数据操作
    3-python学习——变量
    2-python学习——hello world
    1 python学习——python环境配置
    04-树7. Search in a Binary Search Tree (25)
  • 原文地址:https://www.cnblogs.com/gfhh/p/11642391.html
Copyright © 2020-2023  润新知