python.设计一个Student类,可以通过构造方法和类方法两种方法进行实例化对象,并打印学生信息: (1)输入学号,姓名,年龄进行实例化对象。 (2)输入学号,姓名,出生年份进行实例化对象。
时间: 2024-12-13 07:28:56 浏览: 12
Python中类和对象的属性 & 方法
在Python中,我们可以设计一个名为`Student`的类,它包含属性如`student_id`, `name`, 和两个不同的实例化方法,一个是基于年龄,另一个是基于出生年份。以下是该类的实现:
```python
class Student:
def __init__(self, student_id, name, age): # 构造方法1 - 通过年龄初始化
self.student_id = student_id
self.name = name
self.age = age
print(f"创建了学生{self.name},学号{self.student_id}, 年龄{age}")
@classmethod # 类方法 - 通过出生年份初始化
def from_birth_year(cls, student_id, name, birth_year):
current_year = datetime.datetime.now().year
age = current_year - birth_year
new_student = cls(student_id, name, age)
return new_student
# 实例化对象的方式1:直接使用构造方法
new_student1 = Student(1001, "张三", 18)
# 实例化对象的方式2:使用类方法
new_student2 = Student.from_birth_year(2002, "李四", 2005) # 假设当前年份是2023
```
在这个例子中,我们首先定义了一个常规的构造方法`__init__`,用于接收学生的学号、姓名和年龄。然后我们添加了一个类方法`from_birth_year`,这个方法接受出生年份作为参数,并计算当前年龄。最后,我们展示了如何分别使用这两个方式创建学生对象。
阅读全文