1.为了更好的理解面向对象编程,下面以“烤地瓜”为案例,进行分析
2.分析“烤地瓜”的属性和方法
1.示例属性如下:
·cookedLevel :这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时时生的
·cookedString :这是字符串;描述地瓜的生熟程度
·condiments :这是地瓜的配料列表,比如番茄酱、芥末酱等
2.示例方法如下:
·cook():把地瓜烤一段时间
·addCondiments():给地瓜添加配料
·__init__():设置默认的属性
·__str__():让print的结果看起来更好一些
3.定义类,并且定义__init__()方法
#定义`地瓜`类
classSweetPotato:
'这是烤地瓜的类'
#定义初始化方法
def__init__(self):
self.cookedLevel =0
self.cookedString ="生的"
self.condiments = []
4.添加"烤地瓜"方法
5.完整代码
3.应用:存放家具
1.分析
2.代码
总结:如果一个对象与另外一个对象有一定的关系,那么一个对象可用是另外一个对象的属性
4.保护对象的属性
如果有一个对象,当需要对其进行修改属性时,有2种方法
·对象名.属性名=数据---->直接修改
·对象名.方法名() ---->间接修改
为了更好的保存属性安全,即不能随意修改,一般的处理方式为
·将属性定义为私有属性
·添加一个可以调用的方法,供调用
总结
·Python中没有像C++中public和private这些关键字来区别公有属性和私有属性
·它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。
�5.__del__()方法
创建对象后,python解释器默认调用__init__()方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法
结果:
总结:
·当有1个变量保存了对象的引用时,此对象的引用计数就会加1
·当使用del删除变量指向的对象时,如果对象的引用计数不会1,比如3,那么此时只会让这个引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象进行删除