12_Python编程从入门到实践_类/实例

一,类的概念

面向对象编程 是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对
象都有的通用行为。基于类创建对象 时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。使用面向对象编程可模拟现实情景,其逼真
程度达到了令你惊讶的地步。
根据类来创建对象被称为实例化 ,这让你能够使用类的实例。在本章中,你将编写一些类并创建其实例。你将指定可在实例中存储什么信息,定义可对这些实例执行
哪些操作。你还将编写一些类来扩展既有类的功能,让相似的类能够高效地共享代码。你将把自己编写的类存储在模块中,并在自己的程序文件中导入其他程序员编
写的类。
理解面向对象编程有助于你像程序员那样看世界,还可以帮助你真正明白自己编写的代码:不仅是各行代码的作用,还有代码背后更宏大的概念。了解类背后的概念
可培养逻辑思维,让你能够通过编写程序来解决遇到的几乎任何问题。
随着面临的挑战日益严峻,类还能让你以及与你合作的其他程序员的生活更轻松。如果你与其他程序员基于同样的逻辑来编写代码,你们就能明白对方所做的工作;
你编写的程序将能被众多合作者所理解,每个人都能事半功倍。

1)创建和使用类:

使用类几乎可以模拟任何东西。下面来编写一个表示小狗的简单类Dog ——它表示的不是特定的小狗,而是任何小狗。对于大多数宠物狗,我们都知道些什么呢?它们都有名字和年龄;我们还知道,大多数小狗还会蹲下和打滚。由于大多数小狗都具备上述两项信息(名字和年龄)和两种行为(蹲下和打滚),我们的Dog 类将包含它们。这个类让Python知道如何创建表示小狗的对象。编写这个类后,我们将使用它来创建表示特定小狗的实例
1,创建Dog类
根据Dog类创建的每个实例都将存储名字和年龄,我们赋予了每条小狗蹲下(sit() )和打滚(roll_over() )的能力:
12_Python编程从入门到实践_类/实例
2,根据类创建实例
可将类视为有关如何创建实例的说明。Dog 类是一系列说明,让Python知道如何创建表示特定小狗的实例。
12_Python编程从入门到实践_类/实例
3,访问属性/调用方法
12_Python编程从入门到实践_类/实例
4,创建多个实例
12_Python编程从入门到实践_类/实例

二,使用类和实例

你可以使用类来模拟现实世界中的很多情景。类编写好后,你的大部分时间都将花在使用根据类创建的实例上。你需要执行的一个重要任务是修改实例的属性。你可以直接修改实例的属性,也可以编写方法以特定的方式进行修改。

1)Car类:

12_Python编程从入门到实践_类/实例

2)给属性指定默认值:

12_Python编程从入门到实践_类/实例

3)修改属性的值:

可以以三种不同的方式修改属性的值:直接通过实例进行修改;通过方法进行设置;通过方法进行递增(增加特定的值)。下面依次介绍这些方法。
1,直接修改属性的值
12_Python编程从入门到实践_类/实例
2,通过方法修改属性的值
12_Python编程从入门到实践_类/实例
还可以多在这个方法中进行扩展一下,做一些额外的工作,禁止任何人将里程表读数往回调:
12_Python编程从入门到实践_类/实例
3,通过方法对属性的值进行递增
有时候需要将属性值递增特定的量,而不是将其设置为全新的值。假设我们购买了一辆二手车,且从购买到登记期间增加了100英里的里程,下面的方法让我们能够传递这个增量,并相应地增加里程表读数:
12_Python编程从入门到实践_类/实例
注意:你可以使用类似于上面的方法来控制用户修改属性值(如里程表读数)的方式,但能够访问程序的人都可以通过直接访问属性来将里程表修改为任何值。要确保安全,除了进行类似于前面的基本检查外,还需特别注意细节。