一。类和对象

      1. class 关键字定义一个类,首字符通常要大写,类里面主要有两种数据:

          属性

          方法

     2. 通过定义的类,创建的实例就是对象,对象的属性和方法和类的成员变量及成员函数想对应

     3. 对象有3个特性:

        对象的句柄,属性,方法

     4.python的实例化和函数的调用相似,使用类名加圆括号的方式。

 

二。类的属性

         1. 私有属性:属性的名字是以两个下划线开始

               A。类的外部不能直接访问私有属性

               B。通过以下模式调用:instance._classname_attribute

                    instance:实例化的对象

                    classsname:类名

                    attribute:私有属性

         2. 公有属性:没有下划线的属性

         3. 实例属性:以self作为前缀的属性

         4. 静态属性:又叫类变量/类属性,

               A。没有self,可以在该类的所有实例中共享,

               B。类和对象都可以直接访问类属性

        5. 内置属性:属性名字两侧均有双下划线:如,__dict__,__doc__,__bases__

    类的属性和方法定义次序没有要求,合理的方式是把类的属性定义在类最前面,然后定义私有方法,最后定义公有方法

 

三. 类的方法:

         self参数:是区分方法和函数的标志,表示指向实例对象本身,

                       类是一个产生实例的工厂,在定义类的时候,会产生类的命名空间及物理内存,

                       在类实例化,生成实例时,同样会产生该实例的命名空间及物理内存,当有多个

                       实例同时存在时,通过self参数的传入,把self.data存入到个各个不同的实例

                       命名空间里。        

     1. 公有方法:

         

     2. 私有方法 :方法名前有双下划线, 

         不能被模块外的类和方法调用,也不能被外部的类和函数调用

     3. 静态方法:

         @staticmethod声明

          staticmethod()可以把一个方法转换为静态方法。

     4. 类方法:

         @classmethod声明

           classmethond()

          把类作为第一个参数(cls)传递

     5. 实例方法:

     6. 类的内置方法:方法名字两侧均有双下划线,如:__init__,__del__,__str__

                   

四。一些内置方法:

      __init__方法:

     1. 构造函数

     2. 用于初始化类的内部状态,为类的属性设置默认值

         2.1 定义实例变量或属性

         2.2 程序初始化

         如果需要了解一个实例的属性和特点,可以查看类里的__init__方法。

     3. 调用:可以随时调用

         fruit.__init__(color)

    __del__方法:

     1. 析构函数

     2. 用于释放对象占用的资源

     3. 程序里可选,如果程序里没有析构函数,python会提供默认的析构函数,如果定义了

         则实例无法被python的循环垃圾收集器(gc)收集,建议只在需要时定义此函数

五。类的继承:

      1. 概念及调用:

          类名后使用一对括号表示继承,括号里的类即为父类

          如果父类定义了__init__方法,子类必须显示的调用父类的__init__方法。

           调用父类 __init__方法的模式:

           A。Fruit.__init__(self,color) 

           B。super(type,obj):

                type:某个类,

                obj:该类的实例化对象

                super(Apple,self).__init__

      2. 抽象基类:

          对一类事物的特征行为的抽象,由抽象方法组成,在python3中可以使用abc模块,这个模块中有个元类ABCMeta和

          修饰器@abstractmethod。抽象基类不能被直接实例化

      3. 多态性:

          继承机制说明子类具有父类的公有属性和方法,而且子类可以扩展自身的功能,添加新的属性和方法。因此,子类可以

          替代父类对象,这种特性称之为多态性。

      4.多重继承;

          1个类可以继承多个父类:class_name(parent_class1,parent_class2...)

       5.Mixin机制:

 

六。 在模块里导入类:

       from modulename import firstclass

       class secondclass(firstclass)

             def 。。。。    

posted on 2016-05-15 10:03  晓风残梦  阅读(216)  评论(0编辑  收藏  举报

导航