14 python-类基础

1. 名词解释

          类(class):

                 简单理解为具有相同属性和方法的对象的集合。定义了该集合中每个对象公有的属性和方法。


          类变量:

                 类变量在所有实例化的对象中公用。定义的位置在类中,函数外(使用较少)。在类方法中的定义的所有变量,都是此方法的局部变量,也就是只能在此方法中使用

         实例变量:

                定义在函数(方法)中变量,供每个实例单独使用。

          

实例方法:

        类中的定义的函数,第一个参数必须为self只能通过实例调用。

类方法:

       类中定义的函数,使用关键字“@classmethod”装饰器,第一个参数位必须为cls,可以通过或者实例变量调用。

静态方法:

      类中定义的函数,使用关键字“@staticmethod”装饰起,参数不需要指定cls和self,可以通过类或者实例变量调用。

      

继承:

        继承是面向对象的一个特点,通过继承,产生的新类(也叫子类)可以使用父类函数中某些方法和是属性,这个过程就叫做继承。

封装:

      类中把某些属性和方法隐藏起来(或者说定义成私有的),只在类的内部使用、外部无法访问,或者留下少量接口(函数)供外部访问。

多态:

      同一种调用方式,不同的执行结果(因为调用的对象不同,导致的结果不同,其实python的多态和c++等语言不同,因为python本身即就是鸭子类型语言,不需要可以强调多态。

    

方法重写:

         发生在继承的场景下,也就是直接编写与父类中同名的函数,该函数就是对父类的函数的重写。

实例化:

         用类生成一个实例,这个过程就叫做实例化。


2. 类的定义:

      2.1 类的定义:

          

         重点:

              1. 声明类,必须使用关键字 class,空格后面是类的名字,然后是小括号冒号(小括号可以添加要继承的类),注意缩进

              2. 在类中直接定义的变量,叫做类变量,类变量可以被类和实例对象访问,被全部实例对象共享。

              3. 类方法,定义在类中,第一个参数为cls,需要使用@classmethod修饰,可以被类和实例对象访问,只能访问类变量

              3. 实例方法,定义在类中,第一个参数为self该方法只能被实例对象调用,可以访问类变量和实例变量

              4. 定义在实例方法内的变量叫做实例变量实例变量只能被实例方法访问(类方法不可以)

              5. 静态方法,定义在类中,使用@staticmethod修饰,不限定参数的个数(建议不使用self,cls参数,因为在类中,这两个参数具有特殊意义),可以被实例对象和类调用,不能访问实例变量和实例方法,可以访问类变量和类方法(只能通过类名.类方法(类变量)访问)


2.2 self 和 cls


      在类中,self和cls是具有特殊意义的,因此建议不要将关键字定义为其他作用

     2.21 self: 

              (1)作为函数的第一个参数,表明该参数是一个实例方法

              (2)self指向的是类实例对象本身(注意:不是类)。

              (3)如果使用实例对象.实例方法调用,那么self参数不在参数传递范围内(因为self指向的就是实例对象本身),直接传递其他的参数即可。

               (4)如果想要传递self参数,可以通过方法 类名.实例方法(实例对象,其他参数),区别于通过类直接调用。


           示例:

                 


          运行结果:

                

                              

2.22 cls:class的缩略    

                     (1)作为函数的第一个参数,表明该参数是一个 方法。
                     (2)cls指向的是类本身(注意:不是实例)。

                     (3)如果使用类(或者实例对象).类方法调用,那么cls参数不在参数传递范围内(因为cls指向的就是类本身),直接传递其他的参数即可。

                  示例:

                      

                  运行结果:

                       

                注意:cls和self作为参数时,是可以替代的(但是最好不要,为了代码的可读性,以防止因为疏忽造成的位未知问题)

                          

      

     2.3 类方法,实例方法,静态方法

         实例方法:self作为第一个参数,只能被实例对象调用,可以操作类变量和实例变量

                     

        运行结果:

                     

                          

         类方法: cls作为第一个参数,可以被实例对象和类调用,只能访问类变量

                    

            运行结果:

                            

            

             类方法调用实例变量:

                 

               运行结果:

                              


                静态方法:不需要self或者cls作为第一个参数,需要使用@staticmethod装饰器修饰,可以被实例对象和类调用,只能访问类变量                 

                           

                   运行结果:

                           

               类方法和静态方法的区别:

                       (1)类方法需要装饰器 @classmethod修饰,静态方法需要装饰器@staticmethod修饰

                       (2)在访问类变量时,方式不同,静态方法只能通过类名访问,而类方法还可以通过cls关键字访问

                 

    2.4 类的特殊方法:

        __init__ 方法: 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值  

                  使用示例:

                         

                 运行结果:

                          


        __str__ 方法,在用户直接打印示例时,需要通过return返回输出内容;如果未明确定义,系统则返回实例地址

             示例:

                                                                            

              运行结果:

                                             


     __repr__方法,在交互模式下,定义直接输入对象名称时回车显示的信息,需要

                       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值