封装是面向对象编程的一大特点,面向对象编程的第一步就是将属性和方法封装到一个抽象的类中。外界使用类创建对象,然后让对象调用方法,而对象方法的细节都被封装在类的内部。在对象的方法内部是可以直接访问对象的属性的。
1. 例如我们有如下需求:
(1). 小明体重75.0公斤
(2). 小明每次跑步会减肥0.5公斤
(3). 小明每次吃东西体重增加1公斤
首先我们对需求进行分析,要完成以上需求,我们需要创建一个Person类,类中有两个属性:姓名和体重,然后又跑步和吃东西两个方法,这两个方法都会影响体重这个属性。
代码实现如下:
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 = self.weight - 0.5
def eat(self):
print("%s 爱吃东西" % self.name)
self.weight = self.weight + 1.0
xiaoming = Person("xiaoming", 75.0)
print(xiaoming)
xiaoming.run()
print(xiaoming)
xiaoming.eat()
print(xiaoming)
程序运行结果如下:
2. 需求扩展:
(1)小明 和 小美 都爱跑步
(2)小明 体重 75.0 公斤
(3)小美 体重 45.0 公斤
(4)每次 跑步 都会减少 0.5 公斤
(5)每次 吃东西 都会增加 1 公斤
我们只需要使用定义的Person类,增加一个对象即可