写点什么

Python——绑定与方法调用

用户头像
在即
关注
发布于: 刚刚
Python——绑定与方法调用
  • 在 Python 中,如果用实例去调用方法,这种限制就被称为 Python 中的绑定(binging)。没有创建实例时,方法就是未绑定的。本次的任务就是让学习者理解什么是绑定,并学会如何调用方法。


相关知识

像函数一样,Python 中的类方法也是一种对象。由于既可以通过实例也可以通过类来访问方法,所以在 Python 里有两种风格:

未绑定的类方法:没有 self

通过类来引用方法返回一个未绑定方法对象。要调用它,你必须显示地提供一个实例作为第一个参数。

绑定的实例方法:有 self

通过实例访问方法返回一个绑定的方法对象。Python 自动地给方法绑定一个实例,所以我们调用它时不用再传一个实例参数。

两种方法都是对象,它们可以被传递、存入列表等待。两者运行时都需要一个实例作为第一参数(妤一个 self 值),但当通过一个实例调用一个绑定方法时 Python 自动会提供一个。

1.调用绑定方法


  • 在定义方法时,self总是作为第一个参数传递的。self代表实例本身,self.变量代表调用此实例的变量,self.方法代表调用实例的方法。因为声明方法时已经传入self,所以在调用时self就不用明确传入了,此时实例是隐含的。调用绑定方法的代码如下:

class bindExample:

def bindMethod(self):

print("绑定方法调用实例")

be = bindExample()

be.bindMethod()


2.调用非绑定方法


  • 当调用非绑定方法的时候,因为没有创建实例,所以需要用类去调用方法。在调用的时候需要显式地传入一个实例参数。例如:

class bindExample:

def bindMethod(self):

print("非绑定方法调用实例")

be = bindExample()

bindExample.bindMethod(be)


编程要求:


1.本关的测试文件给出了一个类 f\fractionSum,此类的作用是当输入一个数 n,如果 n 为偶数,求 1/2+1/4+…+1/n 的和,如果输入 n 为奇数,求 1/1+1/3+…+1/n 的和。

2.在 f\fractionSum 中,定义了方法 peven(self,n)用来求当 n 为偶数时的结果,定义了 podd(self,n)用来求当 n 为奇数时的结果,定义了 dcall(self,fp,n)方法来调用 peven 与 podd 两个方法,fp 为方法名,最后返回计算结果。


本关的编程任务是补全 f\fractionSum.py 文件中的创建实例与调用方法部分,具体要求如下:


  1. 填入创建 f\fractionSum 的实例 fs 的代码;

  2. 填入调用 f\fractionSumtest 类中 dcall 方法的代码,计算当 n 为偶数时计算的和;

  3. 填入调用 f\fractionSumtest 类中 dcall 方法的代码,计算当 n 为奇数时计算的和。


测试说明


本关涉及的代码文件 f\fractonSum.py 的代码框架如下:

import f\fractionSumtest

请在下面填入创建 f\fractionSum 的实例 fs 的代码

########## Begin #########

########### End ##########

n = int(input())

if n % 2 == 0:


请在下面填入调用 f\fractionSumtest 类中 dcall 方法的代码,计算当 n 为偶数时计算的和

########## Begin ##########

########## End ##########

else:

请在下面填入调用 f\fractionSumtest 类中 dcall 方法的代码,计算当 n 为奇数时计算的和


########## Begin ##########


########## End ##########

print(sum)


测试说明

本文的测试文件是 f\fractionSumtest.py,具体测试过程如下:

平台自动编译生成 f\fractionSumtest.exe;

平台运行 f\fractionSumtest.exe,并以标准输入方式提供测试输入;

平台获取 f\fractionSumtest.exe 输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

预期输入:5

预期输出:1.5333333333333332

预期输入:8

预期输出:1.0416666666666665

上代码:

16 行:print(sum)

发布于: 刚刚阅读数: 2
用户头像

在即

关注

记录学习进度 2021.02.27 加入

文章基本上都是课上学到的知识结合自己见解进行写作,如有错误,欢迎各位大牛指出。

评论

发布
暂无评论
Python——绑定与方法调用