定义⼀个学⽣类,包括学号、姓名和出⽣⽇期三个属性(数据成员),包括 ⼀个⽤于给定数据成员初始值的构造函数,包含⼀个可计算学⽣年龄的⽅法, 编写该类并对其进⾏测试。
时间: 2023-12-09 09:03:19 浏览: 139
一个 Student类:包括姓名、学号、性别、专业、家庭地址。
好的,这是一个经典的面向对象编程问题。以下是一个示例代码:
```python
import datetime
class Student:
def __init__(self, student_id, name, birthdate):
self.student_id = student_id
self.name = name
self.birthdate = datetime.datetime.strptime(birthdate, '%Y-%m-%d')
def calculate_age(self):
today = datetime.datetime.today()
age = today.year - self.birthdate.year - ((today.month, today.day) < (self.birthdate.month, self.birthdate.day))
return age
# 测试
s = Student("20210001", "张三", "2000-01-01")
print(s.student_id) # 20210001
print(s.name) # 张三
print(s.birthdate) # 2000-01-01 00:00:00
print(s.calculate_age()) # 年龄(根据当前日期计算)
```
在上面的代码中,我们定义了一个Student类,并在构造函数中初始化了学号、姓名和出生日期三个属性。这里使用了Python内置的datetime模块来处理日期时间相关的操作,包括将字符串转换为datetime对象。calculate_age()方法计算学生的年龄,这里采用了常见的算法,即以当前日期为基准,减去出生日期的年份,再根据月份和日期确定是否还需要再减一岁。
最后,我们对该类进行了简单的测试,输出了学号、姓名、出生日期和年龄等信息。
阅读全文