大家好!作为刚学 Python 满一周的小白,今天终于鼓起勇气挑战了「面向对象编程」的入门题 —— 定义一个明星类并实现基本功能。虽然中间踩了不少坑,但最终写出了能跑通的代码!这篇博客会用最通俗的语言拆解思路,适合和我一样的零基础小伙伴,快来看看吧~
一、题目要求:用类实现明星信息管理
题目分为三个部分,核心是学会「类」的定义和对象操作:
- 定义
Star
类:- 包含姓名、电影两个属性
- 有
playing()
方法打印出演信息 - 打印对象时显示自定义文案
- 删除对象时提示 “不再喜欢”
- 循环输入 5 个明星对象:用键盘输入姓名和电影名
- 调用方法并打印对象:对每个对象调用
playing()
并打印二、代码实现:从类定义到完整功能(附逐行解析)
先看最终代码,再拆解每个部分的作用:
# 1. 循环输入5个明星对象 star_list = [] # 用列表存储所有对象(别用list作变量名!会覆盖Python内置类型) for i in range(5): name = input(f'请输入第{i+1}位明星姓名:') movie = input(f'请输入{name}的代表电影:') star = Star(name, movie) # 创建Star类的实例(对象) star_list.append(star) # 把对象添加到列表 # 2. 调用方法并打印对象 print('\n--- 明星信息展示 ---') for star in star_list: star.playing() # 调用对象的playing方法 print(star) # 直接打印对象会触发__str__方法
三、新手必懂:类和对象的核心知识点拆解
1. 什么是「类」?怎么定义?
类就像一个 “模板”,可以批量创建相似的对象。
__init__方法
:相当于 “模板初始化器”,创建对象时必须传入姓名和电影两个参数- 属性:
self.name
和self.movie
是每个对象独有的数据(比如不同明星有不同姓名) - 方法:
playing()
是对象能执行的动作(比如打印出演信息)
2. 神奇的 “特殊方法”:让对象更智能
__str__
:当你用print(对象)
时,自动调用这个方法返回定制化文案(再也不是默认的内存地址啦!)__del__
:当对象被删除(比如程序结束时),会触发这个方法打印提示(理解 “对象生命周期” 的入门)
3. 输入与存储:如何批量创建对象?
- 用
for循环
重复 5 次输入过程,每次创建一个Star
对象 - 把对象存入列表
star_list
,方便后续统一操作(列表是 Python 中存储多个对象的常用容器)
四、我踩过的 3 个坑(新手必看避坑指南!)
-
输入次数错误:
一开始把循环写成range(3)
,只输入了 3 个对象(题目要求 5 个!)。记住:题目中的 “五个” 一定要严格对应循环次数! -
变量名冲突:
用list = []
导致后续报错,因为list
是 Python 内置的列表类型名。变量名不能和 Python 关键字 / 内置类型重名,建议用star_list
这类有意义的名字。 -
语法细节失误:
把playing
方法里的 “出演了” 写成 “演出了”,虽然程序能跑,但不符合题目要求。一定要仔细对照题目描述!
五、学习感悟:从过程到对象,编程思维的小飞跃
写这个程序时,我突然理解了 “面向对象编程” 的核心 ——把数据(属性)和操作(方法)封装在一起。比如每个Star
对象都有自己的姓名和电影,还能自己打印信息,就像一个个 “会自己行动” 的小实体。
作为学了一周的新手,第一次写出有完整逻辑的类,成就感爆棚!虽然代码还很基础,但终于明白:编程就是把现实中的问题拆解成代码能理解的 “类” 和 “对象”。接下来想尝试用类做更复杂的小项目,比如学生管理系统、图书管理系统~
六、代码运行效果演示(附截图参考)
假设输入以下内容:
请输入第1位明星姓名:周迅
请输入周迅的代表电影:画皮
请输入第2位明星姓名:胡歌
请输入胡歌的代表电影:琅琊榜
...(输入5次后)
输出结果会是:
--- 明星信息展示 ---
周迅出演了画皮,非常好看
周迅是我的偶像,我非常喜欢他的电影画皮
胡歌出演了琅琊榜,非常好看
胡歌是我的偶像,我非常喜欢他的电影琅琊榜
...(5个对象的信息依次显示)
程序结束时会打印__del__
方法的提示,因为对象被销毁)
七、给新手的互动问题
- 你觉得
__str__
方法有什么用?如果不写这个方法,直接打印对象会显示什么? - 试试把
__del__
方法注释掉,程序结束时还会有 “不再喜欢” 的提示吗?为什么?
欢迎在评论区留下你的答案或学习疑问,我们一起讨论~ 如果你也是刚学 Python 的小白,这道题真的很适合练手,推荐亲自敲一遍代码哦!
标签
#Python 入门 #面向对象编程 #类与对象 #新手实战 #编程学习日记
通过这道题,我真正体会到 “实战是最好的老师”—— 哪怕代码简单,只要亲手实现并解决报错,就能深刻理解知识点。期待和大家一起解锁更多 Python 小项目,下次博客见啦! 🚀