也说说面向对象和类
这里没有长篇大论,这里只有伪代码
今天我要做饭,炒两个菜,一个是鸡蛋炒西红柿,一个是鸡蛋炒黄瓜。现在我要做的是先去市场买菜,然后是炒菜
如果面向过程的话我会这样写
-------------------面向过程-----------------
菜1 = 鸡蛋
菜2 = 西红柿
菜3 = 黄瓜
买菜1
买菜2
买菜3
打菜1(打鸡蛋)
切菜2(切西红柿)
成品1 = 炒菜1+菜2
打菜1
切菜3(切黄瓜)
成品2 = 炒菜1+菜3
print 成品1
print 成品2
-------------------面向过程-----------------
明显这样比较繁琐,并且不易于掌握和分配,那么给他全部改成函数的面向对象写法
----------------面向对象--------------------
def 买(菜):
付钱
return 菜
def 打(菜):
菜 = 打发(菜)
return 菜
def 切(菜):
if len(菜) == 长:
菜 = 切片(菜)
else:
菜 = 切块(菜)
return 菜
def 炒(菜1,菜2):
成品 = 菜1 + 菜2
return 成品
if __name__ == '__main__':
菜1 = 买(鸡蛋)
菜2 = 买(西红柿)
菜3 = 买(黄瓜)
成品1 = 炒(打(菜1),切(菜2))
成品2 = 炒(打(菜1),切(菜3))
----------------面向对象--------------------
现在我还是觉得别扭,既然成品1和成品2都是炒,那就直接归为一类就得了呗,那么就有了类
----------------面向对象,加入类--------------------
def 买(菜):
付钱
return 菜
class 炒菜(object):
def __init__(self,菜1,菜2):
self.菜1 = 菜1
self.菜2 = 菜2
def 打(self):
菜 = 打发(self.菜1)
return 菜
def 切(self):
if len(菜) == 长:
菜 = 切片(菜)
else:
菜 = 切块(菜)
return 菜
def 炒(self):
成品 = self.打() + self.切()
return 成品
if __name__ == '__main__':
菜1 = 买(鸡蛋)
菜2 = 买(西红柿)
菜3 = 买(黄瓜)
成品1 = 炒菜(菜1,菜2)
print 成品1.炒()
成品2 = 炒(菜1,菜3)
print 成品2.炒()
----------------面向对象,加入类--------------------
类后面再写,前两天和朋友聊到这个,我就举了这个例子,他说不好理解,真的是这样么?
上一篇: 《高性能javascript》阅读摘要