educoder实训平台python⼊门之函数调⽤按格式答案_Python
⼊门之类的基础语。。。
题⽬来源于Educoder实训平台,本实训的主要⽬标是让学习者认识类与对象,掌握 Python 中类的基本语法。
类的声明与定义
对象可按其性质划分为类,对象也就是类的实例。类是⽤来描述具有相同的属性和⽅法的对象的集合,即抽象的集合。⽽如何定义类呢?经常⽤到的是Class,例如本关的要求:在类头部填⼊定义Book类的代码。所以只需要在输⼊代码的块中填⼊:
class Book(object)即可通关
类的属性与实例化
属性就是对类和对象特征的描述,外部以属性来区分不同的类,类具有数据属性和⽅法。⽽由类创建出来的实例-对象,具有它所属的类的数据属性和⽅法。
例如,书本是⼀个类,它具有作者、书名、出版社等数据属性,它还具有销售这⼀个⽅法。《 Python 核⼼编程》就是书本类的⼀个对象,它也具有作者、书名、出版社等数据属性和销售这⼀个⽅法。本关的任务是让学习者掌握类的属性与实例化。题⽬给出的要求是需要在代码块中实例化,通关课前知识的学习我们可以输⼊:
p = People()
绑定与⽅法调⽤
这关的第⼀个要求有点少了东西,没有说fractionSum来⾃fractionSumtest,不过看到只留了⼀⾏的代码量给我们,⽽且需要的是我们实例,那样我们就输⼊以下代码即可完成第⼀个需求:
fs = fractionSumtest.fractionSum()
接下来看第⼆个要求,要我们在下⾯填⼊调⽤fractionSumtest类中dcall⽅法的代码,分别计算当n为奇数和偶数时计算的和。通过题⼲可以知道在f\fractionSum中,定义了⽅法peven(self,n)⽤来求当n为偶数时的结果,定义了podd(self,n)⽤来求当n为奇数时的结果,定义了dcall(self,fp,n)⽅法来调⽤peven与podd两个⽅法,fp为⽅法名,最后返回计算结果。这边可能会有很多同学写成这样:
sum = fs.dcall(peven(n),n)sum = fs.dcall(podd(n),n)
但是要注意fp为⽅法名!要遵循已经定义好的⽅法,正确的答案是:
sum = fs.dcall(fs.peven,n)sum = fs.dcall(fs.podd,n)
静态⽅法与类⽅法
这⼀关直接按照提⽰的做就好了,直接复制粘贴就⾏,其实我觉得静态⽅法(staticmethod)和类⽅法(classmethod)并不常⽤,但是还是有实际的应⽤场景的,多⽤于构造函数。
类的导⼊
python新手代码错了应该怎么改本关要求我们输⼊调⽤DataChange模块中eightToten(self,p)的代码,以实现将输⼊的⼋进制转换成⼗进制输出,从题⼲可以知道本关的测试⽂件DataChangetest.py中定义了⼀个类DataChange,这个类实现了将⼋进制转换为⼗进制然后输出,这个功能由这个类中的eightToten(self,p)⽅法实现。
这⾥要注意⽅法本⾝就具备有输出的功能,所以不⽤再打印输出了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论