编写一个程序,要求创建一个student类,添加name和age属性,为该属性自动添加相应的getter和setter方法,并给出有参和无参的构造方法。
时间: 2023-04-19 14:02:22 浏览: 155
编写程序,设计一个学生类Student和它的子类Undergraduate
5星 · 资源好评率100%
下面是一个示例程序,实现了上述要求:
```python
class Student:
def __init__(self, name='', age=):
self.name = name
self.age = age
def get_name(self):
return self.name
def set_name(self, name):
self.name = name
def get_age(self):
return self.age
def set_age(self, age):
self.age = age
```
这个程序定义了一个名为`Student`的类,包含了`name`和`age`两个属性,以及相应的getter和setter方法。构造方法包括有参和无参两种形式,可以通过传入参数来初始化对象的属性值。例如:
```python
# 创建一个空的Student对象
s = Student()
# 设置对象的属性值
s.set_name('Tom')
s.set_age(18)
# 获取对象的属性值
print(s.get_name()) # 输出:Tom
print(s.get_age()) # 输出:18
# 使用有参构造方法创建对象
s2 = Student('Jerry', 20)
print(s2.get_name()) # 输出:Jerry
print(s2.get_age()) # 输出:20
```
这个程序还可以进一步简化,使用Python中的@property装饰器来自动创建getter和setter方法。例如:
```python
class Student:
def __init__(self, name='', age=):
self._name = name
self._age = age
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def age(self):
return self._age
@age.setter
def age(self, age):
self._age = age
```
这个程序与前面的程序功能相同,但是使用了@property装饰器来简化getter和setter方法的定义。例如:
```python
# 创建一个空的Student对象
s = Student()
# 设置对象的属性值
s.name = 'Tom'
s.age = 18
# 获取对象的属性值
print(s.name) # 输出:Tom
print(s.age) # 输出:18
# 使用有参构造方法创建对象
s2 = Student('Jerry', 20)
print(s2.name) # 输出:Jerry
print(s2.age) # 输出:20
```
阅读全文