zoukankan      html  css  js  c++  java
  • Python全栈自动化系列之Python编程基础(类讲解)

    一、类

    类可以用来封装一类事物共同的属性和行为

    1)特征:即属性:属性就是定义在类里面的变量

      a.类属性:直接定义在类里面的变量(这个类的每个对象都有这个属性,里面的属性值都是一样)

        共有属性:在类外面的通过类和对象都可以访问

        私有属性:只能在类里面访问,类外面不要去访问

            私有属性的定义:

                以单下划线开头:例如,_attr = 10(在类外面可以访问,但不要在类外面使用)

                以双下划线开头:例如,__attr = 100(在类外面不能直接访问)

            拓展:双下划线开头的私有属性,在保存的时候其实对外是换了一个名字(__属性   =====>  _类名__属性)

      b.对象属性(实例属性):这一类事物都可能会有这个属性,属性值有可能不一样(自己独立的属性)

        对象属性的定义:

              方式一:通过对象进行赋值:对象.属性=属性值(在类外面)

              方式一:通过初始化方法__init__进行定义:self.属性 = 属性值(在类里面的__init__方法中 )

                    self:代表的是对象本身,那个对象去调用方法,self代表的就是那个对象

    2)__init__方法:可以用来初始化对象属性

    3)对象,是通过类创建出来的,拥有这个类的所有的行为和特征

        通过类创建对象:

            obj = 类名()

    2)行为:方法,即函数,方法就是定义在类里面的函数,方法里面的第一个参数必须是self(这是规范)

    注意:

      ①对象可以访问类属性

      ②对象可以访问对象属性

      ③对象可以调用方法

      ④类可以访问类属性

      ⑤类不能访问对象属性

      ⑥类不能调用方法

    二、类的定义

    1)使用关键字:class

      语法:

        方式一:class  类名:

              # 类的属性和方法

        方式二:class  类名(object)

              # 类的属性和方法

    2)类的定义规范:

      1、遵循标识符的命名规范

      2、类名的风格:严格遵循大驼峰命名法(即,每个单词的第一个字母必须大写

    三、类的方法和静态方法

      对象方法(实例方法):

        对象方法的第一个参数,是self,self代表是对象本身

        只能通过对象去调用,对象.方法名()

      类方法:应用场景,如果这个方法以类为主体去调用,方法内部不会涉及到对象属性和对象方法的使用,那么该方法就应该定义成类方法

        在定义方法前加一个@classmethod

        类方法的第一个参数,是cls,cls代表的是类本身

        即可以通过对象去调用,也可以通过类去调用(对象.方法名()  或者   类.方法名()  )

      静态方法:应用场景,如果内部不会使用类属性和类方法,也不会使用对象和属性方法的使用,那么该方法就应该定义成静态方法

        静态方法的定义:在定义方法前加一个@staticmethod

        没有必须要定义的固定参数

        既可以通过对象去调用,也可以通过类去调用(对象.方法名()  或者   类.方法名() )

    四、继承

    继承关系注意点:

          通过继承可以获取父类的方法和属性

          私有的属性是不能继承的(双下划线的私有属性不能继承)

          一个类可以同时继承多个父类。子类都可以继承所有的父类(多继承时,是按顺序继承

    五、重写父类方法

    1)定义:在子类中定义和父类同名的方法,这个操作叫做重写父类的方法

    2)关于方法调用:

        子类可以继承父类的方法,意味着子类可以调用父类的方法(父类不能调用子类的方法)

        如果子类重写了父类方法,那么在调用时,他优先调用自身的方法

    3)关于在子类的方法中,如何调用被重写的父类方法(调用父类同名的方法)

      第一种:父类名.方法名(self)

      第二种:super().方法名()   # super可以调用同名的父类方法(一级一级往上找父类同名方法)

    六、动态属性的设置

    1)内置函数setattr:设置属性

        参数一:类名/对象

        参数二:属性名

        参数三:属性值

    2)内置函数getattr:获取属性

        参数一:类名/对象

        参数二:属性名

    3)内置函数delattr:删除属性

        参数二:类名/对象

        参数二:属性名

     

  • 相关阅读:
    重排序
    线程的生命周期状态
    并发的有序性
    并发的可见性
    并发的原子性
    Java内存模型
    缓存一致性协议MESI
    lsof
    nmap
    elastcisearch简介
  • 原文地址:https://www.cnblogs.com/bluesea-zl/p/12250043.html
Copyright © 2011-2022 走看看