我想使用Python语言完成一个(1)创建一共名为Student的类,其中包含三个实例属性:学号前缀、姓名和年龄 (2)类中还有一个类属性记录当前的学号顺序 (3)编写Student类的代码,要求 每次创建实例时,学号(由前缀+递增的数字组成)自动生成 生成的学号六位,如果学号小于10,前面要补0 202201、202202 、202212 、202252等的程序
时间: 2024-03-26 22:41:47 浏览: 79
好的,我可以帮你完成这个任务。以下是代码实现:
```python
class Student:
# 类属性,记录当前学号顺序
id_num = 1
def __init__(self, name, age, prefix='2022'):
self.name = name
self.age = age
self.prefix = prefix
# 自动生成学号
if Student.id_num < 10:
self.id = self.prefix + '00' + str(Student.id_num)
elif Student.id_num < 100:
self.id = self.prefix + '0' + str(Student.id_num)
else:
self.id = self.prefix + str(Student.id_num)
# 学号顺序自增
Student.id_num += 1
```
以上代码中,我们创建了一个名为Student的类,包含了三个实例属性:学号前缀、姓名和年龄。另外,我们还定义了一个类属性id_num,用于记录当前的学号顺序。
在类的初始化方法__init__中,我们首先将学号前缀、姓名和年龄赋值给实例属性。然后,根据当前的学号顺序生成学号,如果学号小于10,前面要补0。最后,将学号顺序自增1。
使用示例:
```python
# 创建两个学生对象
stu1 = Student('张三', 18)
stu2 = Student('李四', 19)
# 输出学生信息
print(stu1.id, stu1.name, stu1.age) # 2022001 张三 18
print(stu2.id, stu2.name, stu2.age) # 2022002 李四 19
```
以上代码中,我们创建了两个学生对象,分别为stu1和stu2。通过打印输出它们的学号、姓名和年龄,可以看到学号顺序已经自动生成,并且学号小于10的前面已经补0了。
阅读全文