这是我第一次接触面向对象编程,我跟随B站黑马程序员的Python教程,完成了几个案例,感受到了其强大的功能:太方便了!
下面是两个案例及代码
案例一:
思路:
首先将名词提炼出来 —— 小明 —— 人类 —— 对应类名(传入姓名)
特征 —— 体重 —— 对应一个属性
动词 —— 跑、吃 —— 对应两个方法
代码:
class Person:
def __init__(self,name,weight):
self.name = name
self.weight = weight
def __str__(self):
return "我的名字叫 %s 体重是 %.2f 公斤" % (self.name,self.weight)
def run(self):
print("%s 爱跑步,跑步锻炼身体" % self.name)
self.weight -= 0.5
def eat(self):
print("%s 是吃货,吃完这顿在减肥" % self.name)
self.weight += 1
xiaoming = Person("小明",75.0)
xiaoming.run()
xiaoming.eat()
xiaomei = Person("小美",45)
xiaomei.eat()
xiaomei.run()
print(xiaomei)
print(xiaoming)
# 小美小明之间互不影响
案例二:
思路:
经过分析,我们需要定义两个类,一个家具,一个房子,为了开发过程不中断,我们最好选择先开发 家具类
代码:
class HouseItem:
# 定义家具类
def __init__(self,name,area):
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地 %.2f" % (self.name,self.area)
class House:
# 定义房子类
def __init__(self,house_type,area):
self.house_type = house_type
self.area = area
# 剩余面积
self.free_area = area
# 家具名称列表
self.item_list = []
def __str__(self):
return "户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
% (self.house_type, self_area,
self.free_area,self.item_list))
def add_item(self, item):
print("要添加 %s" % item)
# 判断家具面积
if item.area > item.free_area:
print("%s 的面积太大,无法添加" % item.name)
return
# 添加家具名称
self.item_list.append(item.name)
# 计算剩余面积
self.free_area -= item.area
# 创建家具
bed = HouseItem("席梦思",4)
chest = HouseItem("衣柜",2)
table = HouseItem("餐桌",1.5)
print(bed)
print(chest)
print(table)
# 创建房子对象
my_home = House("两室一厅",60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)
总结
通过这两个案例,我算是彻底体会到了面向对象的nb之处,这段代码如果用C编写不知道需要多长时间
面向对象的优势在于:
1. 利于分布执行,有条理,各个任务分工明确
2. 省了很多重复的代码
3. 对象之间可以轻松建立联系
人生苦短,我用Python,哈哈哈!
PS:另,如果想了解更多关于Linux操作系统或者python可以戳我的笔记连接:
Python和Linux操作系统笔记https://blog.csdn.net/Logos515/article/details/128196704?spm=1001.2014.3001.5501