You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类入门:如何实现批量打印电影实例信息的通用函数?

解决方案

首先修正你代码里的关键bug:get_rating方法错误返回了self.name,应该改为self.rating,否则打印出的评分会是电影名称,这不符合预期。

针对你的需求,有两种简洁的方式实现批量打印电影信息,避免重复编写print语句:

方式1:独立批量打印函数

将所有电影实例存入列表,定义一个遍历列表并打印每个实例信息的函数:

def print_film_info(films):
    for film in films:
        print(film.get_name(), film.get_genre(), film.get_rating())

调用时只需传入实例列表:

print_film_info([f1, f2, f3])

方式2:为Film类添加打印方法

在类内部定义一个负责打印当前实例信息的方法,之后遍历实例调用该方法即可:

class Film():
    def __init__(self, name, genre, rating):
        self.name = name
        self.genre = genre
        self.rating = rating #0-100 
    
    def get_name(self):
        return ("The Name of the film is: " + str(self.name))
    def get_genre(self):
        return ("The Genre of the film is: " + str(self.genre))
    def get_rating(self):
        return ("The rating of the film is: " + str(self.rating))  # 已修正bug
    
    def print_info(self):
        print(self.get_name(), self.get_genre(), self.get_rating())

调用示例:

for film in [f1, f2, f3]:
    film.print_info()

你之前遇到的“函数未定义”错误,通常是因为函数定义位置错误——比如将函数缩进在类内部却未作为方法使用,或者在函数定义前就调用了它。只要保证函数定义在调用语句之前,且缩进层级正确(独立函数与类同级,类内方法缩进在类内部),就能解决这个问题。

完整可运行代码

class Film():
    def __init__(self, name, genre, rating):
        self.name = name
        self.genre = genre
        self.rating = rating #0-100 
    
    def get_name(self):
        return ("The Name of the film is: " + str(self.name))
    def get_genre(self):
        return ("The Genre of the film is: " + str(self.genre))
    def get_rating(self):
        return ("The rating of the film is: " + str(self.rating))

def print_film_info(films):
    for film in films:
        print(film.get_name(), film.get_genre(), film.get_rating())

f1 = Film("Fight Club", "Thriller", 91)
f2= Film("Whiplash","Thriller",86)
f3 = Film("Inside out","Animation",71)

print_film_info([f1, f2, f3])

内容的提问来源于stack exchange,提问作者DannyMoham1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:40:34