码迷,mamicode.com
首页 > 其他好文 > 详细

2019年8月7日 封装 7夕快乐

时间:2019-08-07 22:59:43      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:name   ice   自动   调用   应该   封装   直接   art   逻辑   

 

 

 

约定1:单下划线为内部的,私有的。

约定2:双下划线为内部的

 

真正封装是明确区分内外,只能给内部调用,外部无法直接调用,内部逻辑外部无法知晓,并且给外部提供个借口使用

‘‘‘class H2o:
    def __init__(self,name,temperature):
        self.name=name
        self.temperature=temperature
    def turn_ice(self):
        if self.temperature<0:
            print(‘%s温度太低结冰了‘%self.name)
        elif self.temperature > 0 and self.temperature < 100:
            print(‘%s液化成冰‘%self.name)
        else:
            print(‘%s温度太高变成了水蒸气‘%self.name)

class Water(H2o):
    pass

class Ice(H2o):
    pass
class Steam(H2o):
    pass

w1=Water(‘water‘,50)
i1=Ice(‘ice‘,-5)
s1=Steam(‘steam‘,150)

w1.turn_ice()
i1.turn_ice()
s1.turn_ice()‘‘‘
class People:
    _star=earth #前面加单下划线,表达只能内部使用(People类内部)
    __sun=sun  #双下划线
    def __init__(self,name,age,id):
        self.name=name
        self.age=age
        self.id=id

    def get_star(self):#预留接口给外部调用
        print(self._star)

p1=People(sxj,18,111222)

print(p1._star)#还是能访问的,只不过是一种约定,单下划线不应该在外部调用
# print(p1.__sun)
print(p1._People__sun) #双下划线开头,Python会自动进行重命名

》》

earth
sun

2019年8月7日 封装 7夕快乐

标签:name   ice   自动   调用   应该   封装   直接   art   逻辑   

原文地址:https://www.cnblogs.com/python1988/p/11317650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!