• 类方法、实例方法、静态方法


    一、任务描述

      本实验任务主要对Python方法进行一些基本操作,通过完成本实验任务,要求学生掌握Python的类方法、实例方法、静态方法,并对Python方法的基本操作进行整理并填写工作任务报告。

    二、任务目标

    1、掌握Python的类方法

    2、掌握Python的实例方法

    3、掌握Python的静态方法

    三、任务环境

    Ubuntu16.04、Python2.7

    四、任务分析

      实例方法,类方法,静态方法都可以通过实例或者类调用,只不过实例方法通过类调用时需要传递实例的引用(python 3可以传递任意对象,其他版本会报错)。

      三种方法从不同层次上来对方法进行了描述:实例方法针对的是实例,类方法针对的是类,他们都可以继承和重新定义,而静态方法则不能继承,可以认为是全局函数。

     ♥ 温馨提示
    类方法需要@ classmethod 修饰并且有个隐藏参数 cls,实例方法必须有个参数 self, 静态方法必须有 @staticmethod修饰

    五、任务实施

    步骤1、环境准备

      右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。

      通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。

    图1 切换目录

      【mkdir method】在home目录下创建method文件夹。

    图2 创建文件夹

    步骤2、实例方法

      【cd method】切换到method目录下,【vim method1.py】回车后创建并编辑名为method1的Python文件

    图3 创建Python文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      实例方法属于实例的方法 。只能通过实例名.方法名调用。

      其可以访问类属性、实例属性,类方法、实例方法、静态方法。

    图4 编辑Python文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method1.py】执行method1的Python文件。

      当实例属性与类属性重名时,self.class_name优先访问实例属性

    图5 运行Python文件

    步骤3、类方法

      【vim method2.py】回车后创建并编辑名为method2的Python文件

    图6 创建Python文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      类方法属于类类的方法。可以通过实例名.方法名,也可以类名.方法名。

      但不能访问实例属性和实例方法。

      用类来调用这个方法还是类实例调用这个方法,该方法的第一个参数总是定义该方法的类对象。

    图7 编辑Python文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method2.py】执行method2的Python文件。

    图8 运行Python文件

    步骤4、静态方法

      【vim method3.py】回车后创建并编辑名为method3的Python文件

    图9 创建Python文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      和类方法很相似,不同的是定义时要定义(cls)参数。可以通过实例名.方法名,也可以类名.方法名。

      其不能访问实例属性和实例方法

      要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数。使用静态方法的好处是,不需要定义实例即可使用这个方法。另外,多个实例共享此静态方法。

    图10 编辑Python文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method3.py】执行method3的Python文件。

    图11 运行Python文件
  • 相关阅读:
    记一次坑爹的jconsole使用
    触发Full GC的时机
    java NIO之Selector
    java NIO之SelectedKey
    java泛型中的各种限制
    filebeat安装部署
    Kibana安装及简单使用
    elastucasearch基础理论以及安装
    Salt 与Salt API配置
    RabbitMQ 相关理论部分
  • 原文地址:https://www.cnblogs.com/yu-1104/p/9050502.html
Copyright © 2020-2023  润新知