对象之一个示例类---HotDog,,
对象之一个示例类---HotDog,,
一个示例类---HotDog
在这个例子中,我们假设热狗总包括一个小面包。(否则可真是一团糟。)下面为热狗指定一些属性和方法。
下面是热狗的属性
cooked_level:这是一个数字,通过这个属性我们可以知道热狗烤了多长时间。0-3表示还是生的,超过3表示半生不熟,超过5表示已经烤好,超过8表示已经烤成木炭了!我们的热狗开始时是生的。
cooked_string:这是一个字符串,描述热狗的生熟程度。
condiments:这是热狗上的配料列表,比如番茄酱、芥末酱等。
下面是热狗的方法
cook():把热狗烤一段时间,这会让热狗越来越熟。
add_condiment():给热狗加一些配料。
_init_():创建实例并设置默认属性
_str_():让print的结果看起来更好一些
首先,需要定义类,先定义_init_()方法,它会为热狗设置默认属性:
先从一个没有加任何配料的生热狗开始。
现在,来建立一个方法烤热狗:
继续下面的工作之前,先对这一部分做个测试,首先,需要创建热狗的一个实例,还要检查它的属性。
下面把这些内容都放在一个程序中,运行这个程序,代码清单14-5显示了(到目前为止)完整的程序。
现在,运行代码清单14-5中的代码,看看会得到什么,结果应该像这样:
可以看到,属性分别是cooked_level=0,cooked_string="Raw",另外condiments为空。
现在来测试cook()方法,把下面的代码行增加到代码清单14-5中:
再运行这个程序,现在输出会变成:
看来我们的cook()方法能正常工作,cooked_level从0变成4,而且字符串也得到更新(从Raw变成Medium)
下面来增加一些配料,这需要一个新的方法,另外还可以自己增加_str_()函数,让打印对象更为容易,按代码清单14-6编辑程序。
这个代码清单有点儿长,但我还是建议你自己键入这些代码,而且你已经有了之前代码清单14-5中的部分代码,不过,如果你的手指确实很累,或者你没有时间,也可以在examples文件夹上找到这个代码。
运行这个程序,看看能得到什么,结果应该如下:
程序的第一部分创建了类。第二部分测试了烤这个虚拟热狗和添加配料的方法,不过从最后几行代码来看,我认为烤得太过了,这太浪费番茄酱和芥末酱了!
评论关闭