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

一、任务描述

  本实验任务主要对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文件
posted @ 2018-05-17 13:03  薛乔毓  阅读(239)  评论(0编辑  收藏  举报