类方法、实例方法、静态方法
一、任务描述
本实验任务主要对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】查看该目录下的所有内容。
【mkdir method】在home目录下创建method文件夹。
步骤2、实例方法
【cd method】切换到method目录下,【vim method1.py】回车后创建并编辑名为method1的Python文件
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
实例方法属于实例的方法 。只能通过实例名.方法名调用。
其可以访问类属性、实例属性,类方法、实例方法、静态方法。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method1.py】执行method1的Python文件。
当实例属性与类属性重名时,self.class_name优先访问实例属性
步骤3、类方法
【vim method2.py】回车后创建并编辑名为method2的Python文件
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
类方法属于类类的方法。可以通过实例名.方法名,也可以类名.方法名。
但不能访问实例属性和实例方法。
用类来调用这个方法还是类实例调用这个方法,该方法的第一个参数总是定义该方法的类对象。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method2.py】执行method2的Python文件。
步骤4、静态方法
【vim method3.py】回车后创建并编辑名为method3的Python文件
回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
和类方法很相似,不同的是定义时要定义(cls)参数。可以通过实例名.方法名,也可以类名.方法名。
其不能访问实例属性和实例方法
要在类中使用静态方法,需在类成员函数前面加上@staticmethod
标记符,以表示下面的成员函数是静态函数。使用静态方法的好处是,不需要定义实例即可使用这个方法。另外,多个实例共享此静态方法。
编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python method3.py】执行method3的Python文件。