封装和 property方法】的更多相关文章

封装其实就是一个类用双下划线把自己的属性或者方法给限制住 不让其他的类直接调用或者修改  必须通过这个类来进行操作,这个类通过双下划线__把自己的属性和方法给限制住了 封装就是私有的过程 把父类中的属性和方法用双下划线__给装饰后就是只能这个类中使用了 你想使用的需要这个父类名或者super()来掉用 字类不可以继承这个方法或属性了 但是在python解释器中 你私有的过程它的存储是以_类名__私有的内容 来存储的当你的代码中遇到__名字 python解释器就会自动把它转化为_类名__名字的内容…
面对对象的三大特性:继承,多态,封装. 函数和属性装到了一个非全局的命名空间----封装. 封装: 在类中,静态属性,方法,对象属性都可以变成私有的,只需要在这些名字前加上‘__’(双下划线). 在类内,只要你的代码遇到‘__’(双下划线).名字,就会被python解释器自动转换_类名__名字. class A: __N = 'aaa' # 静态变量 def func(self): print(A.__N) # 在类的内部使用正常 ‘aaa’ print(A.__dict__) # 会以这种形式…
class Person(): def __init__(self): self.__age = 0 def set_age(self, age): if age < 0 or age > 200: self.__age = 0 else: self.__age = age def get_age(self): return self.__age a = property(get_age, set_age) # def __init__(self, fget=None, fset=None,…
类的封装 就是把数据或者方法封装起来 为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要原因是:隔离复杂度(快门就是傻瓜相机为傻瓜们提供的方法,该方法将内部复杂的照相功能都隐藏起来了,比如你不必知道你自己的尿是怎么流出来的,你直接掏出自己的接口就能用尿这个功能) 在编程语言里,对外提供的接口(接口可理解为了一个入口),就是函数,称为接口函数,这与接口的概念还不一样,接口代表一组接口函数的集合体. 两个层面的封装 第一个层面 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的…
一.封装之Property prooerty是一种特殊的属性,访问时他会执行一段功能(函数)然后返回 '''BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解) 成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86 ''' class People: def __init__(se…
抽象类,接口类,封装,property,classmetod,statimethod(类方法,静态方法) 一丶抽象类和接口类 接口类(不崇尚用) 接口类:是规范子类的一个模板,只要接口类中定义的,就应该在子类中实现 接口类不能被实例化,只能被继承 支持多继承,父类不实现 python 本身支持多继承,没有接口专用的语法.但是得知道接口的概念 例子: class Alipay: ''' 支付宝支付 ''' def pay(self,money): print('支付宝支付了%s元'%money)…
封装和@property 一.复习 1.接口类和抽象类 python中没有接口类,有抽象类,abc模块中的metaclass=ABCMeta,@abstructmethod,本质是做代码规范用的,希望在子类中实现和父类方法名完全一样的方法 在Java的角度上是有区别的: Java本来支持单继承,所以就有了抽象类 Java没有多继承,所以为了接口隔离原则,设计了接口这个概念,支持多继承了 python既支持单继承也支持多继承,所以对于接口类和抽象类的区别就不那么明显了 甚至在python中没有内置…
组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pass obj=Bar() obj.attrib=Foo() 组合 2.组合的作用 通过为某一个对象添加属性(属性值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合到一起,从而减少类与类之间代码冗余 3.组合的使用 class OldboyPeople: school = 'oldboy'…
Python之路,Day19 = 面向对象的程序设计之继承实现的原理(继承顺序).封装.property 以下类容参考自:http://www.cnblogs.com/metianzing/p/7121947.html 抽象类补充: import abc class Parent(metaclass= abc.ABCMeta): x=1 @abc.abstractclassmethod def foo(self): pass @abc.abstractclassmethod def bar(se…
目的:简化代码,提供框架该有的东西每一个函数 -提供了一个功能 - 公共的功能有了basepage,在PageObjects当中直接调用元素操作. 以下以login_page 为例,实现从配置文件中读取基础信息,日志模块,公共方法login.py的封装,从Excel中读取元素信息,login_page.py 调用basepage中公共操作方法操作. 一.basepage类代码如下: #coding=gbkimport osimport timefrom selenium import webdr…