• Python入门教学——类和对象


    目录

    一、面向过程和面向对象

    1、面向过程

    2、面向对象

    二、类

    三、类对象与类属性

     1、类对象

     2、类属性

    四、类方法与静态方法

    1、类方法

    2、静态方法


    一、面向过程和面向对象

    1、面向过程

    • 是一种以过程为中心的编程思想,强调事件的流程和顺序。
    • 思想:需要实现一个功能的时候,看重的是开发的过程和步骤,每一个步骤都需要自己亲力亲为。
    • 例如:吃饭。需要买菜、洗菜、切菜、煮饭、炒菜...
    • 程序=算法+数据

    2、面向对象

    • 是一种以对象为中心的编程思想,强调事件的角色和主体。
    • 思想:需要实现一个功能的时候,看重的并不是过程和步骤,而是关心的是对象,对象能做什么。
    • 例如:吃饭。找饭店,饭店提供饭菜,我们不需要关心煮饭做菜的过程。
    • 程序=对象+消息

    二、类

    • 是多个类似事物组成的群体的统称,能够帮助我们快速理解和判断事物的性质。可以理解为类别,如人类、鸟类、植物类等。
    • 数据类型也是一种类,不同的数据类型属于不同的类。例如:
    • 创建类的语法:
        1. class Student: # Student为类名,由一个或多个单词组成,每个单词的首字母大写,其余小写
        2. pass # 空语句,为了保持程序结构的完整性
    •  Python中一切皆对象,那Student类是对象吗? 内存有开空间吗?
      • 运行发现Student类是有开辟空间的,并且也是一个对象。
    • 类的组成:
      • 类属性、实例方法、静态方法、类方法。
      • 【注】在类之内定义的函数称为方法。
    • 创建一个类
        1. class Student:
        2. native_place='吉林' # 类属性,直接写在类中的变量
        3. # 初始化方法
        4. def __init__(self,name,age):
        5. self.name=name # self.name,self.age为实例属性
        6. self.age=age
        7. # 实例方法
        8. def info(self) :
        9. print('我的名字叫:',self.name,'年龄是:',self.age)
        10. # 静态方法
        11. @staticmethod
        12. def sm():
        13. print('静态方法')
        14. # 类方法
        15. @classmethod
        16. def cm(cls):
        17. print('类方法')

    三、类对象与类属性

     1、类对象

    • 对象是一个类下的具体内容,例如:100、99、520都是int类下包含的相似的不同个例。
    • python中一切都是对象,例如:字符串对象、整数对象、字典对象等。
    • 对象的创建又称为类的实例化。
    • 创建对象的语法:
      • stu=Student('Jack',20)  # 实例名=类名(实例属性值)
    • 类和实例的关系:
    • 有了实例,就可以调用类中的内容了。
        1. #创建Student类的实例对象
        2. stu=Student('Jack',20)
        3. print(stu.name) # 实例属性
        4. print(stu.age) # 实例属性
        5. stu.info() # 实例方法
        6. Student.info(stu) # 与上条代码功能相同,都是调用info方法。传入的stu实际上就是self
      • 运行结果:
        •  

     2、类属性

    • 类中方法外的变量称为类属性,被该类的所有对象所共享。
    • 使用方式:
        1. # 类属性的使用方法
        2. stu1=Student('张三',20)
        3. stu2=Student('李四',30)
        4. print(stu1.native_place) # 吉林
        5. print(stu2.native_place) # 吉林
        6. Student.native_place='天津'
        7. print(stu1.native_place) # 天津
        8. print(stu2.native_place) # 天津

    四、类方法与静态方法

    1、类方法

    • 使用@classmethod修饰的方法称为类方法,需要传入cls。可以使用类名直接访问,也可以使用对象进行访问。
        1. @classmethod
        2. def cm(cls):
        3. print('类方法')
    • 使用方式:
        1. stu=Student("张三",20)
        2. stu.cm() # 类方法
        3. Student.cm() # 类方法

    2、静态方法

    • 使用@staticmethod修饰的方法称为静态方法,可以使用类名直接访问,也可以使用对象进行访问。
        1. @staticmethod
        2. def sm():
        3. print('静态方法')
    • 使用方式:
        1. stu=Student("张三",20)
        2. stu.sm() # 静态方法
        3. Student.sm() # 静态方法
  • 相关阅读:
    Ant Design+react 路由跳转
    实时云渲染应用之虚拟仿真项目的四大优势
    【算法-动态规划】贝尔曼福特算法
    模型权重初始化代码
    JAVA Annotation 详解
    QPainter的使用入门:绘制象棋界面
    【node和node-sass版本不一致导致报错】解决sass-loader和node-sass版本冲突问题,本人尝试过,真的解决错误了
    使用boost::serialization模块实现快速进制归档的测试程序
    OceanBase社区版4.x核心技术解密
    Axios、SASS学习笔记
  • 原文地址:https://blog.csdn.net/weixin_45100742/article/details/132915579