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

Python入门Day14:面向对象编程初步(OOP入门)

学习目标:

  • 理解面向对象编程(OOP)的基本思想:类,对象
  • 掌握类的定义,构造方法,实例属性和方法
  • 熟悉self的含义与作用
  • 学会用类组织和封装代码,初步构建自己的“对象世界”

一、什么是面向对象?

面向对象(Object-Oriented Programming)是一种将数据和操作数据的方法组织在一起的编程范式。

术语含义
类(class)模板,蓝图,定义了对象的属性和行为
对象(object)类的具体实例,真实存在的“某一个”
方法类中定义的函数。作用于对象本身
属性存储对象状态的变量(通常通过构造函数设定)

 二、定义类和创建对象

1.定义一个最简单的类

class Student:pass

用class类名:定义一个类,类名一般大写开头。pass表示“占位”

2.创建对象(实例)

stu1 = Student()
print(stu1)     # 输出:<__main__.Student object at ...>

类名加括号即为“创建对象”,也叫实例化

三、构造函数(init)与实例属性

class Student:def __init__(self,name,age):self.name = name    #实例属性self.age = age#创建对象
stu1 = Student("Alice",20)
print(stu1.name)   # Alice
print(stu1.age)    # 20

注释说明:

  • __init__是构造方法,创建对象时自动调用;
  • self代表当前实例本身;
  • self.name是对象的属性,每个对象独立拥有;
  • Student("Alice",20)会自动把"Alice"传给name,20传给age;

四、定义实例方法 

class Student:def __init__(self,name,age):self.name = nameself.age = agedef introduce(self):print(f"我是{self.name},今年{self.age}岁")stu1 = Student("Bob",21)
stu1.introduce()

方法必须以self作为第一个参数,调用时不用写self

五、练习:自定义类管理多个对象

定义一个Book类

class Book:def __init__(self,title,author,price):self.title = titleself.author = author self.price = pricedef info(self):return f"《{self.title}》-{self.author},售价{self.price}元"# c创建多个对象
book1 = Book("三体","刘慈欣",49)
book2 = Book("活着",“余华”,39)#输出信息
print(book1.info())
print(book2.info())

输出:

《三体》 - 刘慈欣,售价 49 元
《活着》 - 余华,售价 39 元

六、OOP初学者易错点

错误用法正确用法原因
name =nameself.name = name未保存到对象属性中
忘写self参数def introduce(self)Python方法必须有self参数
stu1.introduce(self)stu1.introduce()调用时不需要传self
多个对象共享数据混乱每个对象独立数据属性属于实例,不要用类变量混用

http://www.dtcms.com/a/309727.html

相关文章:

  • 国内短剧CPS系统开发:技术架构与商业化实践
  • 离线智能破局,架构创新突围:RockAI与中国AI的“另一条车道”
  • MySQL CPU占用过高排查指南
  • 动作捕捉技术重塑具身智能开发:高效训练与精准控制的新范式
  • k8s之NDS解析到Ingress服务暴露
  • vscode cursor配置php的debug,docker里面debug
  • 嵌入式学习的第四十天-51单片机
  • Vue模板语法详解:从基础到进阶的响应式绑定指南2
  • 【AI论文】大语言模型量化的几何原理:将GPTQ视为Babai最近平面算法
  • 开发者体验如何度量?
  • springboot在线法律服务平台-计算机毕业设计源码45635
  • Context API
  • Class29ResNet
  • 机器学习——逻辑回归(LogisticRegression)的核心参数:以约会数据集为例
  • 数智管理学(四十三)
  • Python LRU缓存应用与示例
  • C++拷贝构造函数
  • rhcsa笔记大全
  • 【2025/08/01】GitHub 今日热门项目
  • PendingIntent的flag和原理解析
  • 【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?
  • Linux系统编程Day3-- Linux常用操作(续)
  • 【BUUCTF系列】[GXYCTF2019]Ping Ping Ping 1
  • 【Linux我做主】细说环境变量
  • 鸿蒙智能居家养老系统构思(续二)—— 适老化烹饪中心详细构思
  • 前端渲染三国杀:SSR、SPA、SSG
  • SpringBoot3.x入门到精通系列:1.4 项目结构与核心注解
  • 三十九、【扩展工具篇】Allpairspy 组合用例生成器:智能设计高效测试集
  • spring中自带的执行定时任务的注解是什么?
  • 铁皮矫平机是什么?