定义学生类: 属性有学号,姓名,性别,班级(均为字符串类型); 构造方法1,根据给定的学号、姓名给属性赋值; 构造方法2,根据给定的学号,姓名,性别,班级给相关属性赋值; 定义学号、姓名、性别的getter访问器; 定义班级的getter访问器和setter访问器
时间: 2023-06-15 10:05:48 浏览: 95
下面是一个示例的Python代码实现:
```python
class Student:
def __init__(self, id, name, gender=None, class_name=None):
self.id = id
self.name = name
self.gender = gender
self.class_name = class_name
@property
def id(self):
return self._id
@id.setter
def id(self, value):
self._id = value
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
@property
def gender(self):
return self._gender
@gender.setter
def gender(self, value):
self._gender = value
@property
def class_name(self):
return self._class_name
@class_name.setter
def class_name(self, value):
self._class_name = value
```
在这个示例代码中,我们使用了Python中的@property装饰器来定义了访问器。这样定义的好处是,我们可以通过调用类的实例属性来访问属性的值,而不用显式地调用getter方法。例如,我们可以这样访问学生的姓名:
```python
s = Student("001", "Alice")
print(s.name) # 输出 "Alice"
```
同时,我们也可以通过调用setter方法来修改属性的值:
```python
s = Student("001", "Alice")
s.name = "Bob"
print(s.name) # 输出 "Bob"
```
阅读全文