计算思维入门:面向对象编程与实例解析

需积分: 50 24 下载量 63 浏览量 更新于2024-08-07 收藏 2.05MB PDF 举报
"创建同一个类的多个实例-ocd 2 简易安装使用说明" 在面向对象编程中,创建同一个类的多个实例是常见的操作。这个过程类似于使用模具制造产品,类作为模具,而实例则如同根据模具制造出的各个独立产品。每个实例虽然基于相同的模板(类),但它们可以拥有不同的属性和状态,就像产品虽然形状相同,但可能有各自独特的特征。 在Python中,创建类的实例是通过`__init__`方法完成的,该方法在创建新对象时自动调用。例如,如果我们有一个名为`Person`的类,我们可以创建两个不同的实例`p1`和`p2`: ```python class Person: def __init__(self, name, birth_year): self.name = name self.birth_year = birth_year # 创建实例 p1 = Person('Lucy', 1990) p2 = Person('Tom', 1992) ``` 在上述代码中,`p1`和`p2`都是`Person`类的实例,具有`name`和`birth_year`这两个属性。尽管它们属于同一类,但各自的属性值不同,如`p1`的名字是"Lucy",出生年份是1990,而`p2`的名字是"Tom",出生年份是1992。 对象方法的调用是通过向对象发送消息的方式实现的。消息的格式通常为`<对象>.<方法>(<实参>)`。在Python中,每个类定义的方法都必须以`self`作为第一个参数,它指向调用方法的对象实例。例如,如果`Person`类中有`whatName`和`howOld`方法: ```python class Person: # ... def whatName(self): return f"My name is {self.name}" def howOld(self, current_year): return f"My age in {current_year} is {current_year - self.birth_year}" ``` 我们可以这样调用这些方法: ```python >>> p1.whatName() "My name is Lucy" >>> p2.whatName() "My name is Tom" >>> p2.howOld(2013) "My age in 2013 is 21" # 注意:假设2013是调用方法时的当前年份,所以2013 - 1992 = 21 ``` 这些调用过程中,`p1`和`p2`作为`self`的实参隐式传递给了方法,使得方法知道是哪个对象实例在执行它们。 这个知识来源于《计算思维导论——程序设计思想与方法》一书,该书旨在教授如何运用计算机科学的基本概念、思想和方法去解决问题,从而发展学生的计算思维能力。书中通过Python语言讲解面向对象编程,包括如何创建类和实例,以及如何通过调用对象方法来执行功能。书中还涵盖了其他编程核心概念,如数据表示、流程控制、模块化编程等,旨在帮助学生理解和应用计算机科学的思维来解决实际问题。