python入门-day15:面向对象基础(python面向对象的基本概念)
off999 2025-07-03 18:48 6 浏览 0 评论
欢迎来到第 15 天的学习!今天我们进入编程的一个超酷领域——面向对象编程(OOP)。它就像是给程序搭积木,让代码更有条理、更容易管理。我们会从基础开始,逐步搞懂“类与对象”、“属性和方法”,最后做一个“汽车”类的练习。
什么是类与对象?
类(Class)
- 类就像一张蓝图或模板,用来描述一类东西的样子和功能。
- 比如:“汽车”是一个类,它告诉我们汽车应该有什么(轮子、颜色)和能做什么(开动、刹车)。
对象(Object)
- 对象是根据类创建的具体东西,就像用蓝图盖出的房子。
- 比如:一辆红色的跑车是“汽车”类的对象。
生活例子
- 类:手机的“设计图”(有屏幕、按键,能打电话)。
- 对象:你手里的 iPhone(具体的一部手机)。
属性和方法
属性(Attributes)
- 属性是类或对象拥有的“特征”或“数据”。
- 比如:汽车的颜色、速度就是它的属性。
- 用代码表示,就是类的变量。
方法(Methods)
- 方法是类或对象能做的事情,也就是“功能”。
- 比如:汽车可以“加速”或“刹车”,这些是方法。
- 用代码表示,就是类里的函数。
生活例子
- 手机类:
- 属性:颜色 = 黑色,屏幕大小 = 6 英寸。
- 方法:打电话、发短信。
Python 中的类与对象
让我们用代码实践一下!
定义一个简单的类
python
# 定义一个“手机”类
class Phone:
# 属性(用特殊方法 __init__ 初始化)
def __init__(self, color, size):
self.color = color # 颜色属性
self.size = size # 屏幕大小属性
# 方法
def call(self):
print("正在打电话...嘟嘟嘟!")
def send_message(self):
print("消息已发送!")
# 创建对象
my_phone = Phone("黑色", 6) # 用类创建一个具体的手机
# 访问属性
print(f"我的手机颜色是:{my_phone.color}")
print(f"我的手机屏幕大小是:{my_phone.size} 英寸")
# 调用方法
my_phone.call()
my_phone.send_message()
输出结果
我的手机颜色是:黑色
我的手机屏幕大小是:6 英寸
正在打电话...嘟嘟嘟!
消息已发送!
代码解释
- class Phone:定义一个“手机”类。
- __init__:初始化方法,像“开机设置”,用来给对象赋值属性。
- self:代表对象自己,每次创建对象时,self 指向那个具体的对象。
- my_phone:根据类创建的对象,可以用 . 访问属性和方法。
练习:定义一个“汽车”类
现在轮到你动手啦!我们来定义一个“汽车”类,包含“速度”和“颜色”属性,还有一些简单的方法。
任务要求
- 定义一个 Car 类。
- 属性:速度(speed)、颜色(color)。
- 方法:加速(speed_up)、刹车(brake)。
示例代码
python
# 定义“汽车”类
class Car:
# 初始化属性
def __init__(self, speed, color):
self.speed = speed # 速度(单位:公里/小时)
self.color = color # 颜色
# 方法:加速
def speed_up(self):
self.speed += 10 # 速度增加 10
print(f"{self.color}汽车加速啦!现在速度是 {self.speed} 公里/小时。")
# 方法:刹车
def brake(self):
self.speed -= 5 # 速度减少 5
if self.speed < 0: # 速度不能小于 0
self.speed = 0
print(f"{self.color}汽车刹车了!现在速度是 {self.speed} 公里/小时。")
# 创建一辆汽车对象
my_car = Car(20, "红色")
# 测试属性和方法
print(f"我的汽车颜色是:{my_car.color}")
print(f"初始速度是:{my_car.speed} 公里/小时")
my_car.speed_up() # 加速
my_car.speed_up() # 再加速
my_car.brake() # 刹车
输出结果
我的汽车颜色是:红色
初始速度是:20 公里/小时
红色汽车加速啦!现在速度是 30 公里/小时。
红色汽车加速啦!现在速度是 40 公里/小时。
红色汽车刹车了!现在速度是 35 公里/小时。
代码解释
- __init__(self, speed, color):设置汽车的初始速度和颜色。
- speed_up():每次调用,速度增加 10,并打印当前状态。
- brake():速度减少 5,保证不低于 0。
- my_car:一辆具体的红色汽车,初始速度 20。
动手练习
试试自己写代码:
- 创建一个蓝色汽车,初始速度 30。
- 调用两次 speed_up(),然后一次 brake()。
- 打印最终速度和颜色。
参考答案
python
blue_car = Car(30, "蓝色")
blue_car.speed_up()
blue_car.speed_up()
blue_car.brake()
print(f"最终速度:{blue_car.speed} 公里/小时")
print(f"颜色:{blue_car.color}")
预期输出
蓝色汽车加速啦!现在速度是 40 公里/小时。
蓝色汽车加速啦!现在速度是 50 公里/小时。
蓝色汽车刹车了!现在速度是 45 公里/小时。
最终速度:45 公里/小时
颜色:蓝色
小结
- 类:蓝图,定义了东西的样子(属性)和功能(方法)。
- 对象:根据蓝图创建的具体实例。
- 属性:用 self.xxx 表示对象的特征。
- 方法:用函数定义对象能做的事。
今天的汽车类是不是很有趣?明天我们可以加更多功能,比如喇叭、加油站,甚至让汽车“说话”!有什么问题或想法,随时告诉我哦!
希望这个内容对你学习面向对象基础有帮助!如果需要更详细的解释或额外练习,随时说!
相关推荐
- 如何理解python中面向对象的类属性和实例属性?
-
类属性和实例属性类属性就是给类对象中定义的属性通常用来记录与这个类相关的特征类属性不会用于记录具体对象的特征类属性的理解:类属性是与类自身相关联的变量,而不是与类的实例关联。它们通...
- Java程序员,一周Python入门:面向对象(OOP) 对比学习
-
Java和Python都是**面向对象编程(OOP)**语言,无非是类、对象、继承、封装、多态。下面我们来一一对比两者的OOP特性。1.类和对象Java和Python都支持面向对象...
- 松勤技术精选:Python面向对象魔术方法
-
什么是魔术方法相信大家在使用python的过程中经常会看到一些双下划线开头,双下划线结尾的方法,我们把它统称为魔术方法魔术方法的特征魔术方法都是双下划线开头,双下划线结尾的方法魔术方法都是pytho...
- [2]Python面向对象-【3】方法(python3 面向对象)
-
方法的概念在Python中,方法是与对象相关联的函数。方法可以访问对象的属性,并且可以通过修改对象的属性来改变对象的状态。方法定义在类中,可以被该类的所有对象共享。方法也可以被继承并重载。方法的语法如...
- 一文带你理解python的面向对象编程(OOP)
-
面向对象编程(OOP,Object-OrientedProgramming)是一个较难掌握的概念,而Python作为一门面向对象的语言,在学习其OOP特性时,许多人都会对“继承”和“多态”等...
- 简单学Python——面向对象1(编写一个简单的类)
-
Python是一种面向对象的编程语言(ObjectOrientedProgramming),在Python中所有的数据类型都是对象。在Python中,也可以自创对象。什么是类呢?类(Class)是...
- python进阶突破面向对象——四大支柱
-
面向对象编程(OOP)有四大基本特性,通常被称为"四大支柱":封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)和抽象(Abstrac...
- Python学不会来打我(51)面向对象编程“封装”思想详解
-
在面向对象编程(Object-OrientedProgramming,简称OOP)中,“封装(Encapsulation)”是四大核心特性之一(另外三个是继承、多态和抽象),它通过将数据(属性)和...
- Python之面向对象:对象属性解析:MRO不够用,补充3个方法
-
引言在前面的文章中,我们谈及Python在继承关系,尤其是多继承中,一个对象的属性的查找解析顺序。由于当时的语境聚焦于继承关系,所以只是简要提及了属性解析顺序同方法的解析顺序,而方法的解析顺序,在Py...
- Python之面向对象:通过property兼顾属性的动态保护与兼容性
-
引言前面的文章中我们简要提及过关于Python中私有属性的使用与内部“名称混淆”的实现机制,所以,访问私有属性的方法至少有3种做法:1、使用实例对象点操作符的方式,直接访问名称混淆后的真实属性名。2、...
- Python之面向对象:私有属性是掩耳盗铃还是恰到好处
-
引言声明,今天的文章中没有一行Python代码,更多的是对编程语言设计理念的思考。上一篇文章中介绍了关于Python面向对象封装特性的私有属性的相关内容,提到了Python中关于私有属性的实现是通过“...
- Python中的私有属性与方法:解锁面向对象编程的秘密
-
Python中的私有属性与方法:解锁面向对象编程的秘密在Python的广阔世界里,面向对象编程(OOP)是一种强大而灵活的方法论,它帮助我们更好地组织代码、管理状态,并构建可复用的软件组件。而在这个框...
- Python 面向对象:掌握类的继承与组合,让你的代码更高效!
-
引言:构建高效代码的基石Python以其简洁强大的特性,成为众多开发者首选的编程语言。而在Python的面向对象编程(OOP)范畴中,类的继承和组合无疑是两大核心概念。它们不仅能帮助我们实现代码复用,...
- python进阶-Day2: 面向对象编程 (OOP)
-
以下是为Python进阶Day2设计的学习任务,专注于面向对象编程(OOP)的核心概念和高阶特性。代码中包含详细注释,帮助理解每个部分的实现和目的。任务目标:复习OOP基础:类、对象、继...
- 外婆都能学会的Python教程(二十八):Python面向对象编程(二)
-
前言Python是一个非常容易上手的编程语言,它的语法简单,而且功能强大,非常适合初学者学习,它的语法规则非常简单,只要按照规则写出代码,Python解释器就可以执行。下面是Python的入门教程介绍...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python重命名文件 (54)
- python面向对象编程 (60)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)