定义一个学生类,包括学号、姓名和出生日期三个属性(数据成员);包括一个用于给定数据成员初始值的构造函数;包含一个可计算学生年龄的方法。编写该类并对其进行测试。(50.0分)
时间: 2024-05-04 08:17:25 浏览: 149
好的,根据您的要求,我来为您编写一个学生类的代码,代码如下所示:
```python
import datetime
class Student:
def __init__(self, stu_no, name, birth_date):
self.stu_no = stu_no
self.name = name
self.birth_date = datetime.datetime.strptime(birth_date, '%Y-%m-%d').date()
def get_age(self):
today = datetime.date.today()
age = today.year - self.birth_date.year
if today < self.birth_date.replace(year=today.year):
age -= 1
return age
# 测试
stu = Student('20211001', '张三', '2000-01-01')
print(f'学号:{stu.stu_no},姓名:{stu.name},年龄:{stu.get_age()}岁')
```
在上面的代码中,我们定义了一个学生类`Student`,其包括三个属性:`stu_no`、`name`和`birth_date`,分别代表学号、姓名和出生日期。在构造函数`__init__`中,我们使用`strptime`方法将传入的出生日期字符串转换为日期类型,以便后续计算年龄。
最后,我们定义了一个`get_age`方法来计算学生的年龄,其中使用了`datetime`模块中的`date`类和`today`方法来获取当前日期,使用了`replace`方法将出生日期的年份替换成当前年份,以便比较是否已过生日。
最后,我们对该类进行了测试,创建了一个学生对象,并输出该学生的学号、姓名和年龄。
阅读全文
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![java](https://img-home.csdnimg.cn/images/20250102104920.png)