1.以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限, 工作单位和职务;方法包括:工作 要求: 1) 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问 2) 限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。 3) 限定“技术方向”是只读属性 4) 工作方法通过输入参数,接收工作单位和职务,输出个人工作信息 5) 编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)
时间: 2023-11-27 17:03:40 浏览: 82
以下是IT从业者类的实现:
```python
class ITWorker:
def __init__(self, name, age=15, tech_direction='unknown', work_years=0, company='', position=''):
self.__name = name
self.__age = age if age >= 15 else 15
self.__tech_direction = tech_direction
self.__work_years = work_years
self.__company = company
self.__position = position
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):
if age >= 15:
self.__age = age
else:
print('Invalid age. Default age 15 is used.')
def get_tech_direction(self):
return self.__tech_direction
def get_work_years(self):
return self.__work_years
def set_work_years(self, work_years):
self.__work_years = work_years
def get_company(self):
return self.__company
def set_company(self, company):
self.__company = company
def get_position(self):
return self.__position
def set_position(self, position):
self.__position = position
def work(self, company, position):
self.__company = company
self.__position = position
print('{} works at {} as a {}.'.format(self.__name, self.__company, self.__position))
```
在这个类中,我们将姓名、年龄、技术方向、工作年限、工作单位和职务都设为私有属性,并限定它们只能通过公有的get和set方法访问。我们在set_age方法中加入了一个判断条件,如果输入的年龄小于15,就会提示年龄无效,并设置默认年龄为15。技术方向设为只读属性,只提供了get方法。
最后,我们添加了一个工作方法,通过输入参数来设置工作单位和职务,并输出工作信息。
下面是测试IT从业者类的代码:
```python
# 创建一个IT从业者对象
it_worker = ITWorker('Alice', 25, 'Web Development', 3)
# 测试get和set方法
print(it_worker.get_name()) # 输出 Alice
it_worker.set_name('Bob')
print(it_worker.get_name()) # 输出 Bob
print(it_worker.get_age()) # 输出 25
it_worker.set_age(10) # 输出 Invalid age. Default age 15 is used.
print(it_worker.get_age()) # 输出 15
print(it_worker.get_tech_direction()) # 输出 Web Development
# it_worker.set_tech_direction('Data Science') # 报错 AttributeError: can't set attribute
print(it_worker.get_work_years()) # 输出 3
it_worker.set_work_years(5)
print(it_worker.get_work_years()) # 输出 5
print(it_worker.get_company()) # 输出 ''
print(it_worker.get_position()) # 输出 ''
it_worker.work('Google', 'Software Engineer') # 输出 Bob works at Google as a Software Engineer.
print(it_worker.get_company()) # 输出 Google
print(it_worker.get_position()) # 输出 Software Engineer
```
在这个测试代码中,我们创建了一个IT从业者对象,然后测试了各个属性和方法。我们先测试了get和set方法,以及set_age方法的限制条件。然后我们测试了get_tech_direction方法,确保它是只读属性。接下来我们测试了工作方法,输出工作信息,并测试了工作单位和职务的设置。
阅读全文