网站开发4k分辨率,自贡市城市建设投资开发集团有限公司网站,杭州网站优化效果,长沙服装定制视频地址#xff1a;http://www.56.com/u88/v_OTM5NjU0MjE.html#fromoutpvidOTM5NjU0MjE 普及网络安全知识#xff0c;推动信息技术发展。 为祖国的网络安全撑起一片蓝天#xff0c;为网络安全爱好者构建一方家园。 欢迎来到灰帽程序员论坛#xff0c;我们的网址是#xf…视频地址http://www.56.com/u88/v_OTM5NjU0MjE.html#fromoutpvidOTM5NjU0MjE 普及网络安全知识推动信息技术发展。 为祖国的网络安全撑起一片蓝天为网络安全爱好者构建一方家园。 欢迎来到灰帽程序员论坛我们的网址是http://www.hmhacker.org 论坛是以技术交流为主非商业性质论坛不从事任何非法入侵活动 分享知识分享快乐收获友谊收获财富 大家好我是数字雨QQ:798033502 今天给大家带来的教程是《Python编程系列教程第13讲——隐藏数据和封装》 我们看下面这样的一个小例子。 假设 0-10度为冰水 11-20度为凉水 21-60度为温水 61-90度为热水 91-100度为开水 __author__ MXi4oyu class Heatupwater: #定义一个烧水的类,类名首字母大写 def __init__(self): #初始化水温是15度 self.temperature15 self.level凉水 def heatup(self): self.temperature10 def setlevel(self): if(self.temperature0 and self.temperature10): self.level冰水 elif(self.temperature10 and self.temperature20): self.level凉水 elif(self.temperature20 and self.temperature60): self.level温水 elif(self.temperature60 and self.temperature90): self.level热水 else: self.level开水 def waterinfo(self): self.setlevel() print(self.level:str(self.temperature)℃) if __name____main__: h1Heatupwater() h1.heatup() h1.waterinfo() for i in range(4): h1.heatup() h1.waterinfo() h1.temperature0 h1.waterinfo() 你可能已经意识到了查看或修改对象中的属性有两种方法。 一种是直接给属性赋值例如mywater.temprature56 另一种是使用我们定义的heatup方法。那么直接跟给temprature赋值是不合理的比如我们将水烧到89度突然赋值为0度这是不合理的。我们不想让temprature属性被外界直接赋值我们想要的效果是只有当调用heatup方法时水温才会变化。为了达到这样的效果我们通常使用私有属性把数据隐藏起来。 面向对象的三大特性是封装、继承和多态封装概念的核心是对象内部数据不应该从公共接口直接访问如果对象用户想要改变对象的状态就要使用访问方法和修饰方法。 Property()装饰器函数是一个内置函数至多可接受4个参数一个获取者函数一个设置者函数一个删除者函数一个docstring。 使用property的效果与仅使用一个参数(获取者函数)调用property()函数的效果是一样的。 def name(self): return self__name nameproperty(name) 但是简便起见我们通常是用property装饰器来修饰。 下面简单的封装下People类。 __author__ MXi4oyu #!/usr/bin/python #codingutf-8 class People(): def __init__(self): self.__namejack property def name(self): return self.__name name.setter def name(self,value): #我们通过这种方式就可以对name属性的值进行限定 if not isinstance(value,str): raise TypeError(姓名必须为字符串) else: self.__namevalue.title() if __name____main__: p1People() p1.namejack print(p1.name)转载于:https://www.cnblogs.com/secbook/p/3190864.html