计算思维入门:面向对象编程与实例解析
需积分: 50 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语言讲解面向对象编程,包括如何创建类和实例,以及如何通过调用对象方法来执行功能。书中还涵盖了其他编程核心概念,如数据表示、流程控制、模块化编程等,旨在帮助学生理解和应用计算机科学的思维来解决实际问题。
1073 浏览量
703 浏览量
171 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
C2000,28335Matlab Simulink代码生成技术,处理器在环,里面有电力电子常用的GPIO,PWM,ADC,DMA,定时器中断等各种电力电子工程师常用的模块儿,只需要有想法剩下的全部自
1470 浏览量
2025-01-04 上传
Big黄勇
- 粉丝: 66
- 资源: 3905