python编写一个学生类Student,定义三个属性name age id,分别表示学生的姓名,年龄和学号。第一个学生的学号为一,以后每生成一个学生对象,学号增加一。初始化学生对象时需要提供姓名和年龄,每个学生在校生成以后需要调用自定义的info()方法输入姓名,年龄和学号。
时间: 2024-11-27 09:08:03 浏览: 13
创建学生类Student,继承自SchoolPerson类, 添加额外两个属性:班级class、学号sno。 添加方法:打印学生的所有信息print_info方法。
5星 · 资源好评率100%
在Python中,你可以通过设置类的静态变量和动态属性的方式来满足这个需求。这里我们可以定义一个`Student`类,并在类内部维护一个全局的学生数量,每次创建新对象时自动递增学号。同时,提供一个`info()`方法供用户输入姓名和年龄,然后更新学号。以下是具体的实现:
```python
class Student:
_id_counter = 0 # 定义静态计数器
_total_students = 0 # 计算总学生数量
@classmethod
def get_next_id(cls):
cls._id_counter += 1
return cls._id_counter - 1 # 因为从1开始计数,所以返回的是实际的学号
def __init__(self, name, age):
self.name = name
self.age = age
self.id = self.get_next_id()
def info(self):
print("请输入您的姓名和年龄:")
self.name = input("姓名:")
self.age = int(input("年龄:"))
self.id = self.get_next_id() # 更新学号
# 使用示例
student1 = Student("张三", 18)
student1.info()
```
当创建`Student`对象时,会自动为其分配学号。`info()`方法则允许用户更新他们的个人信息。
阅读全文