一、实验目的
熟练掌握函数的用法。
- 实验环境
Windows11 pycharm
三、实验内容、步骤和结果分析
题目一:继承6.5节例6-4中的Person类生成student类,编写新的方法用来设置学生专业,然后生成该类对象并显示信息。
源码:
class Person(object):
def __init__(self, name, age, gender):
self.name = name
self.gender = gender
self.age = age
def show(self):
print('Name:',self.name)
print('Age:',self.age)
print('Gender:',self.gender)
class Student(Person):
def __init__(self, name, age, gender, major):
super(Student, self).__init__(name,age, gender)
self.major = major
def setMajor(self,major):
if not isinstance(major,str):
print('major must be string.')
return
self.major = major
def show(self):
Person.show(self)
print('Major:',self.major)
if __name__ == '__main__':
zhangsan = Person('zhangsan',19,'man')
zhangsan.show()
lisi = Student('lisi',21,'man','Paediatrics')
lisi.show()
lisi.setMajor('computer science')
lisi.show()
运行结果截图:
实验过程分析:派生类调用基类方法,用基类名.方法名()实现
题目二:定义一个三维向量类(例:(3,5,8)),并定义相应方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/)。
源码:
class Vector3:
# 构造方法,初始化,定义向量坐标
def __init__(self,x,y,z):
self.a = x
self.b = y
self.c = z
# 与一个向量相加,对应分量相加,返回新向量
def __add__(self, m):
x = self.a + m.a
y = self.b + m.b
z = self.c + m.c
return Vector3(x,y,z)
# 减去另一个向量,对应分量相减,返回新向量
def __sub__(self, m):
x = self.a - m.a
y = self.b - m.b
z = self.c - m.c
return Vector3(x, y, z)
# 向量与一个数字相乘,各分量乘以同一个数字,返回新向量
def __mul__(self, n):
x, y, z = self.a*n, self.b*n, self.c*n
return Vector3(x,y,z)
# 向量除以一个数字,各分量除以同一个数字,返回新向量
def __truediv__(self, n):
x, y, z = self.a/n, self.b/n, self.c/n
return Vector3(x, y, z)
# 查看向量长度,所有分量平方和的平方根
@property
def length(self):
return pow((self.a**2 + self.b**2 + self.c**2),0.5)
def __str__(self):
return 'Vector3({},{},{})'.format(self.a,self.b,self.c)
v1 = Vector3(8, 9, 5)
v2 = Vector3(4, 6, 7)
print('v1+v2=',v1+v2)
print('v1-v2=',v1-v2)
print('v1*v2=',v1*3)
print('v1/v2=',v2/2)
print('所有分量平方和的平方根为',v1.length)
运行结果截图: