1.python面向对象应用。

烤地瓜


示例属性如下:

cookedLevel : 这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时时生的

cookedString : 这是字符串;描述地瓜的生熟程度

condiments : 这是地瓜的配料列表,比如番茄酱、芥末酱等


示例方法如下:

cook() : 把地瓜烤一段时间

addCondiments() : 给地瓜添加配料

__init__() : 设置默认的属性

__str__() : 让print的结果看起来更好一些



1.定义类,并且定义__init__()方法

#定义`地瓜`类

class SweetPotato:

'这是烤地瓜的类'

#定义初始化方法

def __init__(self):

self.cookedLevel = 0

self.cookedString = "生的"

self.condiments = []



2.添加"烤地瓜"方法

#烤地瓜方法

def cook(self, time):

self.cookedLevel += time

if self.cookedLevel > 8:

self.cookedString = "烤成灰了"

elif self.cookedLevel > 5:

self.cookedString = "烤好了"

elif self.cookedLevel > 3:

self.cookedString = "半生不熟"

else:

self.cookedString = "生的"



3.测试cook方法是否好用。

print("------接下来要进行烤地瓜了-----")

mySweetPotato.cook(4) #烤4分钟

nt(mySweetPotato.cookedLevel)

print(mySweetPotato.cookedString)



4.定义addCondiments()方法和__str__()方法。

def __str__(self):

msg = self.cookedString + " 地瓜"

if len(self.condiments) > 0:

msg = msg + "("

for temp in self.condiments:

msg = msg + temp + ", "

msg = msg.strip(", ")

msg = msg + ")"

return msg

def addCondiments(self, condiments):

self.condiments.append(condiments)



5.完整代码是:

class SweetPotato:

"这是烤地瓜的类"

#定义初始化方法

def __init__(self):

self.cookedLevel = 0

self.cookedString = "生的"

self.condiments = []

#定制print时的显示内容

def __str__(self):

msg = self.cookedString + " 地瓜"

if len(self.condiments) > 0:

msg = msg + "("

for temp in self.condiments:

msg = msg + temp + ", "

msg = msg.strip(", ")

msg = msg + ")"

return msg

#烤地瓜方法

def cook(self, time):

self.cookedLevel += time

if self.cookedLevel > 8:

self.cookedString = "烤成灰了"

elif self.cookedLevel > 5:

self.cookedString = "烤好了"

elif self.cookedLevel > 3:

self.cookedString = "半生不熟"

else:

self.cookedString = "生的"

#添加配料

def addCondiments(self, condiments):

self.condiments.append(condiments)

# 用来进行测试

mySweetPotato = SweetPotato()

print("------有了一个地瓜,还没有烤-----")

print(mySweetPotato.cookedLevel)

print(mySweetPotato.cookedString)

print(mySweetPotato.condiments)

print("------接下来要进行烤地瓜了-----")

print("------地瓜经烤了4分钟-----")

mySweetPotato.cook(4) #烤4分钟

print(mySweetPotato)

print("------地瓜又经烤了3分钟-----")

mySweetPotato.cook(3) #又烤了3分钟

print(mySweetPotato)

print("------接下来要添加配料-番茄酱------")

mySweetPotato.addCondiments("番茄酱")

print(mySweetPotato)

print("------地瓜又经烤了5分钟-----")

mySweetPotato.cook(5) #又烤了5分钟

print(mySweetPotato)

print("------接下来要添加配料-芥末酱------")

mySweetPotato.addCondiments("芥末酱")

print(mySweetPotato)


2.保护对象的属性(私有属性)

如果有一个对象,当需要对其进行修改属性时,有2种方法

对象名.属性名 = 数据 ---->直接修改

对象名.方法名() ---->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

将属性定义为私有属性

添加一个可以调用的方法,供调用

3.添加家具

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 面向对象(Object Oriented Programming,OOP) ·1)解决菜鸟买电脑的故事 第一种方式...
    西多的大叔阅读 3,008评论 0 1
  • 1.1面向对象 面向对象(object-oriented ;简称: OO)至今还没有统一的概念 我这里把它定义为:...
    TENG书阅读 3,641评论 0 0
  • 定义__str__()方法 class Car: def __init__(self,newWheelNum,...
    曹操贼6阅读 2,976评论 0 0
  • 昨天忘写了… 呵呵…
    刘八万阅读 1,319评论 0 0
  • 2月25.26两天我在北京学习了叶武斌老师的易效能课程。 我先来介绍一下叶老师吧:他对自己的评价是这样的,...
    攸冉11言玫阅读 5,000评论 0 1

友情链接更多精彩内容