码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python基础入门篇【29】--python初识面向对象-扩展


    前言:
    作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
    💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
    💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
    如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

    文章目录

    • python初识面向对象--扩展
      • 面向对象与面向过程
        • 面向过程编程:
        • 面向对象编程:
      • 面向对象常用术语
      • self参数扩展与总结

    python初识面向对象–扩展

    面向对象与面向过程

    面向对象编程是在面向过程编程基础上发展来的,它比面向过程具有更强的灵活性和扩展性。

    python是一门面向对象编程。python中一切皆对象。

    面向过程编程:

    面向过程编程的核心是过程,就是分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用函数即可。简单理解就是程序从上到下一步一步执行。

    面向对象编程:

    面向对象编程是把构成事务的整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建对象的目的不是为了完成某一个步骤,而是为了描述某个事务在整个解决问题的步骤中的行为。

    下面来举个实际的例子解释两种不同的编程方式:

    假如有一辆车,它的速度是80km/h,从A地出发开往B地,计算需要花费的时间。

    面向过程编程:

    speed = 80
    diatance = 200
    time = distance / speed
    print(time)
    
    • 1
    • 2
    • 3
    • 4

    面向对象编程

    class Car:
        speed = 0
        
        def driver(self, distance):
            time = distance / speed
            print(time)
            
    car1 = Car()
    car1.speed = 80
    car1.driver(200)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    面向对象的优势,如果再给一辆车不同的速度与距离,只需要再实例化一个对象出来,而不需要像面向过程一样把代码重新再写一遍。

    面向对象常用术语

    • 类:可以理解是一个模板,通过这个模板可以创建出无数个具体实例
    • 对象:类不能直接使用,通过类创建出来的对象才能使用
    • 属性:类中的所有变量称为属性
    • 方法:类中的所有函数成为方法。方法可以分为类方法、静态方法和实例方法。类中定义的方法默认都是实例方法。实例方法至少包含一个self参数,只能被类实例化出来的对象调用使用。

    self参数扩展与总结

    python中self代表类的实例–在定义类的方法时必须存在

    python中只有针对类来说self才有意义–python中的self说的就是类中的self

    可能大家还是不太理解,下面根据类的两个关键要素-属性和方法,具体来使用self看看实际应用效果:

    1. 属性

    如果变量定义在类下面而不是类的方法下面,那这个变量既是类的属性也是类实例的属性

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q6p4Kst4-1658933122501)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727223508298.png)]

    如果变量定义在类的方法下面,如果加了self,那这个变量就是类实例的属性,不是类的属性;如果没有加self,这个变量只是这个方法的局部变量,既不是类属性也不是类实例的属性:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrRYJ1sJ-1658933122503)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727223745369.png)]

    1. 方法

      如果在类中定义函数加了self,那这个函数是类实例的方法,而不是类方法

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IV7HiMtI-1658933122503)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727224212451.png)]

      如果在类中定义函数没有加self,那这个函数只是类的方法,不是类实例的方法

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ldKhlUia-1658933122504)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220727224308429.png)]

  • 相关阅读:
    jackjson下载地址
    如何设计分布式系统-分布式事务-TCC?
    《算法导论》第19章-斐波那契堆 引入&& 19.1 斐波那契堆结构
    java计算机毕业设计网上书店管理系统源码+系统+数据库+lw文档+mybatis+运行部署
    JVM8 元空间
    简单宠物网页设计作业 静态HTML动物介绍网页作业 DW宠物网站模板下载 大学生简单野生动物网页作品代码
    mqtt.js在接收到数据后,如何将数据实时更新到vue界面上的data中
    微信小程序(五十二)开屏页面效果
    基于微信小程序的电影院买票选座系统
    循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)rust解法
  • 原文地址:https://blog.csdn.net/weixin_44629511/article/details/126024820
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号