• py8_Python 类和对象最通俗易懂的解释


    ##################################################

    目录

    活动简介

    简单总结一下昨天的 Python 类和对象

    类和对象通俗易懂的解释

    什么是类

    什么是对象

    什么是成员属性

    什么是成员方法

    关于类中函数的 self 参数必须要知道的

    如何在交互模式中编写并解释运行类和方法

    创建一个学生类

    分析类的成员构成

    创建学生类并访问对象成员


    ##################################################

    活动简介

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰;一个人摸索学习很难坚持,想组团高效学习;想写博客但无从下手,急需写作干货注入能量;热爱写作,愿意让自己成为更好的人…

    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程,或者按照自己的理解发布专栏学习作品!

    ##################################################

    简单总结一下昨天的 Python 类和对象

    ——————————

    类和对象通俗易懂的解释

            如果自学能力强的同学可能上一篇就能把该掌握的掌握了:

    py7_初识 Python 中的 OOP 面向对象编程以及类的方法如何使用 self 传参_燃吹的博客-CSDN博客简介POP 与 OOP 编程思想面向过程/POP 与 面向对象/OOP 区别为什么会出现 OOP 面向对象编程面向对象三大特征封装继承多态类对象是什么最通俗易懂的解释就是 new 个对象!Python 中定义类和实例化创建一个对象Python 中类、属性和方法的命名规范Python 2 经典类Python 3 新型类以及内置属性和方法如何访问类的成员属性和成员方法通过类名或实例化对象访问成员属性通过类名或示例名调用成员方法并利用 self 进行传参...https://blog.csdn.net/m0_67268286/article/details/126220377        这一篇主要是讲的通俗点 做点总结!

    %%%%%

    什么是类

            通俗来说:

    类 = 成员属性 + 成员方法

            类是一个抽象概念

            就是将拥有

    相同特征 指的是相同的成员属性

            和

    类似行为 指的是类似的成员方法

            的这些

    特例对象 指的是符合这个类的成员要求的单个实例

            一句话总结:

    类定义了对象的模板结构

    %%%%%

    什么是对象

            通俗的说:

    对象 就是这个 类 中 万千对象 的一个

            我们通过

    类 这个模板

            按照

    成员属性和成员方法 是这个类定义好的结构

            实例化 出来一个

    对象变量是类变量且对象方法是类方法 具有这个类的特征且符合这个类的行为的对象

            一句话总结:

    对象就是类的一个实例

    %%%%%

    什么是成员属性

            简单的说:

    成员属性就是变量那一大堆

            需要注意的是:

    在类中的变量

    在方法外的变量

    这些变量对所有通过该类实例化的对象可见

            一句话总结:

    成员属性就是声明在类中在类方法外的那些让所有该类对象共享的数据

    %%%%%

    什么是成员方法

            简单的说:

    就是定义在类中的函数

            需要注意的是:

    如果需要传参 必须带上 self 参数

            类的方法与普通的函数只有一个的区别:

    必须有额外的第一个 self 参数

    selft 对应于该实例 就是说 self 就是该对象本身

    按照惯例该参数的标识符是 self 但不是硬性规定的也要是 self

    不要搞特例 别人不会明白的 这叫约定成俗

    在调用方法时不需要明确提供与参数 self 相对应的参数

    self 参数会自动传入

            第一次进 Python 类中方法时踩过的坑:

    1. 我之前在写类和方法的时候从来不加 self
    2. 于是就出现了各种各样的 bug 例如没有这个成员变量哪怕你是真的声明了!!!
    3. 首先明确的是 self 只有在类的方法中才会有
    4. 独立的函数或方法是不必带有 self 的
    5. 虽然在调用时不必传入相应的参数 但是 self 在定义类的方法时是必须有的
    6. self 名称不是必须的 在 Python 中 self 不是关键词
    7. 你可以定义成 a 或 b 或其她名字都可以
    8. 但是为了和其她编程语言统一减少理解难度 还是不要另类的好

            一句话总结:

    定义在类中的函数

    %%%%%

    关于类中函数的 self 参数必须要知道的

            self 的名字并不是规定死的 但是最好还是按照约定还是用 self 比较好!

            self 指的是类实例对象本身 注意是对象而不是类本身!!

            self 在定义时需要定义 但是在调用时会自动传入!!!

    ##################################################

    如何在交互模式中编写并解释运行类和方法

    ——————————

    创建一个学生类

    %%%%%

    分析类的成员构成

            学生类变量:

    姓名

    年龄

            学生类方法:

    输出姓名

    更改姓名

    %%%%%

    创建学生类并访问对象成员

            创建学生类:

    1. Microsoft Windows [版本 6.3.9600]
    2. (c) 2013 Microsoft Corporation。保留所有权利。
    3. C:\Users\byme>python
    4. Python 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (
    5. AMD64)] on win32
    6. Type "help", "copyright", "credits" or "license" for more information.
    7. >>> class Student:
    8. ... name = "学生"
    9. ... age = 1314
    10. ... def getName(self):
    11. ... print ( "学生姓名 >>> [", self.name, "]" )
    12. ... def setName(self, name):
    13. ... self.name = name
    14. ... print ( "收到参数 [", name, "], 更改学生姓名 [", self.name, "]" )
    15. ...
    16. >>> stu = Student()
    17. >>> stu.getName()
    18. 学生姓名 >>> [ 学生 ]
    19. >>> stu.setName("喜羊羊")
    20. 收到参数 [ 喜羊羊 ], 更改学生姓名 [ 喜羊羊 ]
    21. >>> stu.getName()
    22. 学生姓名 >>> [ 喜羊羊 ]
    23. >>>

            注释一下 code:

    1. class Student:
    2. # 学生类
    3. name = "学生" # 学生姓名 默认叫 "学生"
    4. age = 1314 # 学生年龄 默认 1314 岁
    5. def getName(self):
    6. # 获取姓名 参数 self 表示当前对象
    7. print ( "学生姓名 >>> [", self.name, "]" ) # self.name 表示访问当前对象的 name 变量
    8. def setName(self, name):
    9. # 设置姓名 参数 self 表示当前对象 name 表示传入的值这个是该方法内的局部变量!
    10. self.name = name # 表示将接收的 name 赋值給当前对象的 name 变量
    11. print ( "收到参数 [", name, "], 更改学生姓名 [", self.name, "]" ) # 不解释了..
    12. stu = Student() # 实例化一个 Student 类的 stu 对象
    13. stu.getName() # 打印该学生对象的姓名
    14. stu.setName("喜羊羊") # 设置该学生对象的姓名
    15. stu.getName() # 再次打印该学生对象的姓名

            然后根据 Student 类创建了一个 stu 对象最后调用该对象的 getName 函数打印姓名变量:

    1. >>> stu = Student()
    2. >>> stu.getName()
    3. 学生姓名 >>> [ 学生 ]
    4. >>>

            再或者更改姓名:

    1. >>> stu.setName("喜羊羊")
    2. 收到参数 [ 喜羊羊 ], 更改学生姓名 [ 喜羊羊 ]
    3. >>> stu.getName()
    4. 学生姓名 >>> [ 喜羊羊 ]
    5. >>>

  • 相关阅读:
    【深度学习实践(一)】安装TensorFlow
    【GUI】Python图形界面(一)
    Go-Excelize API源码阅读(三十八)——SetCellStyle
    使用busybox快速制作initramfs
    Amazon云计算AWS(二)
    HTTP总结
    SAP FI 项目号 系统状态CRTD是活动的 BS013
    Git常用指令-1
    Reactive源码分析
    线索二叉树
  • 原文地址:https://blog.csdn.net/m0_67268286/article/details/126239712