python Day7

面向对象

###类 对象 内存图

class province(object):                       #object代表新式类

    __country = 'china'           #静态字段  __代表私有  只能类自己内部使用  无法被继承

    def __init__(self,sheng): #构造方法

        self.sheng = sheng      #普通字段

 

    def f1(self):               #普通方法  obj = province()   obj.f1()

        pass

 

    @classmethod                #类方法 province.f2()

    def f2(cls):                #只能一个参数,必须是cls,province将自身作为参数传递给cls

        pass

 

    @staticmethod               #静态方法 province.f3()  随便参数  无需创建对象 只需要创建类可直接调用

    def f3():

        pass

    

        

###面向对象三大特性

封装、继承、多态

 

###python,主要使用封装

         1.多个方法共用一组变量,封装到对象中

         2.模板创建多个对象

 

###继承

         1.基类,派生类。

         2.python可以多继承

         3.新式类和经典类

         4.广度优先,深度优先   广度优先需要满足两个规则,新式类,基类如果是经典类也继承与新式类

 

###类成员

         字段

                   普通,静态  最本质的区别是内存中保存的位置不同

        普通字段属于对象  普通字段在每个对象中都要保存一份

        静态字段属于类  静态字段在内存中只保存一份

         方法

                   普通,              触发者 对象            至少一个self   self = 当前对象

                   类方法,         触发者 类                只有一个cls             cls = 当前类

                   静态                   触发者 类                任意参数

         属性

                   属性对方法的变种,变成访问时相似字段

                   @property

                   Data = property(方法名)

                            obj.Data = 执行方法,并获取方法的返回值

                   新式类中的属性:

                            @property

                            @方法名.setter

                            @方法名.deleter

 

###类成员修饰符

         公有

         私有

                   __开头  只能类自己内部访问,无法被继承

###类的特殊成员

__doc__

  表示类的描述信息

 __module__ 和  __class__ 

  __module__ 表示当前操作的对象在那个模块

  __class__     表示当前操作的对象的类是什么

__init__

  构造方法,通过类创建对象时,自动触发执行。

 __del__

  析构方法,当对象在内存中被释放时,自动触发执行。

 

 __call__

  对象后面加括号,触发执行。

__dict__

  类或对象中的所有成员

posted @ 2015-12-10 14:59  plzros  阅读(100)  评论(0编辑  收藏  举报