实验5 类和模块
实验5 类和模块
Task 5
Stuent.py 中模块实现
class StudentDoc:
def __init__(self,num:int,
name:str='Null',
major:str='Unkown',
grade:int=1) -> None:
'''
说明:
* 创建一个学生,必须有学号
参数:
* ``num``: 学号
* ``name``: 姓名
* ``major``: 专业
* ``grade``: 年级
'''
self.num, self.name, self.major ,self.grade = num, name, major, grade
self.mark=0
def get_mark(self) -> int:
'''
* 说明:
得到成绩
'''
return self.mark
def set_mark(self,num:int) -> None:
'''
* 说明:
修改某人成绩
* 参数:
``num``: 修改的成绩,需要是int
'''
self.mark=num
def get_info(self) -> str:
'''
* 说明:
得到信息
'''
return 'Name: '+self.name+'Num: '+str(self.num)+'Major: '+self.major+'Grade: '+str(self.grade)
def main():
s1=StudentDoc(1,'lalala','gulugulu',99)
s2=StudentDoc(2,'hahaha','rua',11)
print(s1.get_mark())
if __name__=='__main__':
main()
后面写了一些测试
这个实现起来非常简单,或多或少让我找回了用C#/Java的感觉。但是类的实例化语法,C#这种非常明显,而py过于简洁
我在C#可以给各个模块输入的参数写说明,py里应该也可以实现。然后顺便实现了
总体没啥好说的,因为太简单了。
运行截图

task5.py 调用模块
from student import StudentDoc as NewStudent
s1=NewStudent(num=114514,name='Dustella',grade='1',major='Front End Destroyer')
s2=NewStudent(num=19198,name='CanYing',grade=-5,major='Back End Destroyer')
s1.set_mark(100)
print(s1.get_info())
print(s1.get_mark())
s1.set_mark(90)
print(s1.get_mark())
实在是也没什么好说的。用字典传入数据是我个人习惯。
写注释的好处显而易见,IDE可以提示实例化类的时候该传入的参数说明,调用方法也有说明。



这才是正常开发该有的好习惯。
运行截图

总结时间
(原来py是面向对象的,最后一章才讲.........

浙公网安备 33010602011771号