文| Nancy
编辑| 小安
对于最近让很多同学头疼昆士兰大学CSSE1001/7030 —— Python的第二次作业,今天匠人7分Tutor,Nancy学姐要和大家分享一些Python核心知识点和学习经验,帮助大家取得高分!
这次的作业是要完成一个稍微复杂的的卡牌游戏,其中核心的知识点就是面向对象的设计。并且在游戏最初的介绍中提到的MVC架构(model, view,controller),本次的作业中只需实现model层的代码功能即可并且本文也会对MVC架构进行一个简单的介绍。
一、知识点讲解:
类的基础知识:
类(class)是用来描述具有相同的属性和方法的对象的集合
__init__() 称为构造方法,该方法在类实例化中会自动调用,类的属性的初始化赋值一般都会在该构造方法中进行。
类的方法,使用def关键字定义,并且每个类方法必须有一个额外的第一个参数名称,名称是 self(self 代表的是类的实例,而并非类本身)。
继承:
Sample Code:
运行结果:
__str__()和__repr__()是Python的两个魔法方法(Magicmethod),分别可以被str(),和repr()两个内置函数调用。
__str__目的是可读性好,是为了让使用者准备的,是为了简单地表示对象
__repr__的目的是为了表示清楚,是为开发者准备的,应该尽可能的表示对象的来源的类以及继承关系。
Python还有很多魔法方法,感兴趣的同学也可以去网上搜索了解一下。
二、抽象类
在作业介绍中首先碰到的就是如何写一个抽象类(Card)。
抽象类从设计角度来说,就是基于类抽象而来的,从实现角度来看,抽象类与普通类的不同之处在于,抽象类中有抽象方法,也可以有普通方法,该抽象类不能被实例化,只可以被子类继承并且该子类必须实现抽象方法。
三、 MVC架构模型
MVC(model-view-controller)即模型层,视图层,控制层。通过使用MVC架构可以使代码更加清晰,让各个模块负责自己需要关注的地方,解耦程序。
model 只关注对数据的交互部分,数据更改。这次的作业就是需要实现model层的功能,定义卡牌的各种不同的类型以及deck,player类。
view 关注的是跟用户进行交互的代码段,比如终端界面。在此次作业中,gui.py文件就是view层的代码,因为主要实现了游戏界面的绘制。
controller 就是控制视图和模型之间的数据交互机制和通信,相当于model和view之间的桥梁。a2_support.py文件就实现了controller层的功能。
四、结尾
如果想要测试自己的类方法是否写的正确,可以从idle上运行pdf文件中所给的example,以此来分别检查每个class的方法是否写的正确。
另外,不知道大家有没有下载使用PyCharm了呢,python的前两次作业可能相对代码量会少,只是用python自带的编辑器是基本可以满足需要的,但是等下次到了assignment 3,代码量增多,使用一个好的IDE是很有必要的哦。所以还是建议大家现在先对PyCharm先熟悉起来,毕竟也会这更加方便自己。
注意due的时间是在九月20号周五,晚上八点半,希望大家可以早点开始拿起你们的键盘噼里啪啦写起代码来,早开始做的话日后如果有一些小问题才会有充足的时间解决哈。
关于Python的第二个作业,暂时能给大家的小Tip就这些啦。
如果还对作业还是感到有难度的话,也欢迎大家了解匠人学院的大学辅导课程。
请戳下文了解详情👇
老天一定觉得布村留学生的课业太难,所以前学校Tutor学霸忍不住要来带你刷题过考试
留学在外,圈子很重要,成功渡过课程难关更是最重要的任务。
找到一个既能帮助自己解惑提高成绩,又能让接触到行业圈子的渠道。除了匠人,没第二家。
所以,来找匠人吧!
再也不用担心高额的重修费找上门,就在这个学期一起成为屠7大神!
联系“匠人小安”做更优秀的自己一
We
如此厉害的匠人,我们是谁?
Community
澳洲IT匠人社群
作为澳洲领先的IT行业交流圈子,已经有8000多个小伙伴加入,从刚刚来澳洲的IT新生,到行业大神都在IT圈子里。分享工作机会,解答生活职业就业移民问题。一个有爱的圈子,期待同样有爱的你加入。如果你被如此优秀的匠人精神吸引,欢迎2019年的新生加到相应的大学新生群!
* 目前,IT匠人圈已经有8个满的求职技术交流群,每个城市的匠人群,各大学的IT/CS新生群,行业交流群(大前端,Devops,Mobile,数据等等)