当前位置: 首页 > news >正文

11.1 定义类和对象

目录
  • 11.1 定义类和对象
    • 1. 面向对象编程
    • 2. 定义类和对象
      • (1)类的定义
      • (2) 对象的定义

11.1 定义类和对象

1. 面向对象编程

  • 面向过程编程(思想)
    优点:逻辑清晰
    缺点:扩展性差,因为上一个函数的输出是下一个函数的输入

  • 面向对象编程(思想)
    python中一切皆是对象,对象就是特征和技能的结合体。
    面向对象编程定义出一个个鲜明独特的对象,然后通过对象的交互编程。
    优点:扩展性非常强。
    缺点:逻辑非常复杂。

  • 面向过程编程与面向对象编程如何选择:
    写某各项目时,选适合这个项目的;二者只是编程思想不同,没有好坏之分

2. 定义类和对象

(1)类的定义

  • 类:分类/类别

  • 类的概念:一系列具有共同特征或技能的对象。在类中,特征是属性,技能是方法(函数)。

  • 学生类:

    • 学校:school
    • 技能:选课
  • 类与对象先后顺序
    (1)现实世界先有对象,再有类。
    (2)在python中先有类再有对象。

#语法
class 类名(驼峰体:单词首字母大写):多个特征,多个技能
def f1(): school='oldboy'addr='shanghai'1/0 #不调用函数不报错class OldBoyStudent: school='oldboy'addr='shanghai'# 1/0 #类定义阶段,会运行代码,报错。def choose_course(self):print('is chosing course')# 1/0 #函数定义阶段只检测语法,不执行代码;因此不在这里报错oldboystudenct_dict=OldBoyStudent.__dict__ #获取类的属性和特征,双下划线开头的方法会在某种情况下自动触发。
print(oldboystudenct_dict['school'])
print(oldboystudenct_dict['choose_course'](11))
oldboy
is chosing course
None

(2) 对象的定义

#定义一个对象
#以选课系统为例,选课系统老师和学生使用#定义学生对象#姓名:coco#学号:2025111#学校:school#技能:选课 (技能定义为函数)#姓名:mike#学号:2025222#学校:school#技能:选课,读书#姓名:Jane#学号:2025333#学校:school#技能:选课,唱歌#姓名:teacher_Li#学校:school#技能:教课#姓名:teacher_zhang#学校:school#技能:教课
class OldBoyStudent: school='oldboy'addr='shanghai'def choose_course(self):print('is chosing course')#创造对象的过程(实例化对象)stu1=OldBoyStudent() 
print(1,stu1.school)
print(1,stu1.choose_course())stu2=OldBoyStudent() 
stu3=OldBoyStudent() 
1 oldboy
is chosing course
1 None
http://www.gsyq.cn/news/198.html

相关文章:

  • C++小白修仙记_LeetCode刷题_队列
  • Fastjson 1.2.47 远程代码执行
  • MySQL事务
  • Python面向对象
  • buntu22.04 LTS安装docker以及docker-compose实践
  • 20分钟快速入门Docker
  • K8S的基础概念
  • 如何搭建K8S集群
  • 解决 .NET 7 在 Linux 上获取程序集的问题
  • MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询
  • katalon常用定位元素Xpath合集
  • (期望)名字(name)
  • MathType7下载安装2025最新下载+安装+教程(附安装包)
  • 模板 AE PR 达芬奇 剪影
  • 如何自动删除重复执行的任务?
  • 开始更新第一篇
  • springboot~SpringData自定义Repository的正确方式
  • Linux之进程状态
  • 2. O(NlogN)的排序
  • React-手写支持多文件、并行上传、串行上传、分片上传、单文件上传、失败自动重试、自动上传/手动按钮上传切换
  • postcss-px-to-viewport-8-plugin无法转换tailwindcss样式问题
  • 82、SpringMVC 参数传递,浏览器和服务器之间的数据传输
  • 问卷调查数据库设计
  • Linux 系统调用详解与工作机制
  • The 2025 Sichuan Provincial Collegiate Programming Contest
  • 详细介绍:Android 热点开发的相关api总结
  • 十大经典排序算法 - lucky
  • 基于Operator方式和二进制方式部署prometheus环境
  • 27家网省
  • 使用DeepState进行API模糊测试的技术解析(第二部分)