zoukankan      html  css  js  c++  java
  • 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中一切皆对象

  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/gfhh/p/11642391.html
Copyright © 2011-2022 走看看