介绍
在明朝宏伟宫殿的核心地带,一位勤勉的太监开始了一项至关重要的任务:记录和管理庞大的皇家珍宝库存。在古老殿堂和奢华房间的宏伟氛围中,我们的主人公,拥有“器物保管人”的头衔,必须运用极致的精准和细心。使用功能强大且用途广泛的 Python 语言工具,他必须保持一丝不苟的记录。
你的目标是帮助我们忠诚的太监掌握 Python 中的构造函数概念——这对于封装每件独特器物的属性以及使用基于类的结构实现流程自动化至关重要。在这个身临其境的场景中,你将学习如何定义和使用构造函数,提升你以优雅高效的方式处理数据的技能——这是一项无愧于宫廷声誉的努力!
带有构造函数的 Python 类
在这一步中,你将创建一个 Python 类来表示宫殿收藏中的一件器物。你将定义一个构造函数来初始化它的属性,如名称、年代和产地。
请在 ~/project 目录下打开一个名为 artifact.py 的 Python 文件,并输入以下内容:
class Artifact:
def __init__(self, name, age, origin):
self.name = name
self.age = age
self.origin = origin
## Example usage
if __name__ == "__main__":
jade_vase = Artifact("Jade Vase", 150, "China")
print(f"Artifact: {jade_vase.name}, Age: {jade_vase.age}, Origin: {jade_vase.origin}")
Artifact 类有一个 __init__ 方法,它是 Python 中的构造函数。当你创建该类的新实例时,它会自动被调用。self 参数指的是类的当前实例,用于访问属于该类的变量。
在终端中执行以下命令来运行 Python 脚本:
python ~/project/artifact.py
你应该会看到如下输出:
Artifact: Jade Vase, Age: 150, Origin: China
向器物类添加方法
现在,让我们通过添加方法来增强 Artifact 类,以便太监能够显示和更新器物的信息。你将创建一个方法来打印器物的详细信息,另一个方法来更新其年代。
修改 artifact.py 文件以包含新方法:
class Artifact:
def __init__(self, name, age, origin):
self.name = name
self.age = age
self.origin = origin
def display_info(self):
print(f"Artifact: {self.name}, Age: {self.age}, Origin: {self.origin}")
def update_age(self, new_age):
if new_age >= 0:
self.age = new_age
else:
print("Invalid age. Please enter a positive number.")
## Example usage
if __name__ == "__main__":
jade_vase = Artifact("Jade Vase", 150, "China")
jade_vase.display_info()
jade_vase.update_age(160)
jade_vase.display_info()
display_info 方法打印出器物的详细信息。update_age 方法允许更新年代属性,确保只设置有效的正数。
再次在终端中执行相应命令来运行更新后的 Python 脚本,并观察输出。
终端上应显示以下信息:
Artifact: Jade Vase, Age: 150, Origin: China
Artifact: Jade Vase, Age: 160, Origin: China
总结
在这个实验中,你进行了一次穿越明朝古老宫殿的互动之旅,在那里你帮助我们的角色使用 Python 构造函数记录器物。主要重点是理解 Python 中构造函数的概念,以及如何通过方法来操作类的属性。
从创建一个类及其构造函数到添加功能性方法,你获得了实践经验。你学习了如何实例化对象、初始化它们的属性,以及使用类定义的方法来操作对象数据——这是任何 Python 开发者的基础技能集。
我们希望你已经掌握了 Python 构造函数的基本概念,以及它们如何成为数据封装和面向对象编程的强大工具。现在,你可以满怀信心地像宫廷器物保管人一样,继续迎接更复杂的编程挑战!



