1.以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限, 工作单位和职务;方法包括:工作 要求: 1) 设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问 2) 限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。 3) 限定“技术方向”是只读属性 4) 工作方法通过输入参数,接收工作单位和职务,输出个人工作信息 5) 编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)

时间: 2023-11-27 16:03:40 浏览: 45
以下是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方法,确保它是只读属性。接下来我们测试了工作方法,输出工作信息,并测试了工作单位和职务的设置。

相关推荐

最新推荐

recommend-type

面向AI的数据管理技术综述

人工智能技术因其强大的学习和泛化能力已经被广泛应用到各种真实场景中.然而,现有人工智能技术...第一,现有AI技术使用门槛高,依赖于AI从业者选择合适模型、设计合理参数、编写程序,因此很难被广泛应用到非计算机领域。
recommend-type

大数据技术原理学习笔记.docx

该知识来源于MOOC林子雨老师的《大数据技术原理》,该笔记编写了大数据的发展、为什么需要大数据、大数据有什么用、大数据采用哪些组件等技术原理与知识,对于相关从业者、大学生,是一个梳理自身对大数据的理解的...
recommend-type

工业相机:传感器尺寸与像元尺寸的关系.doc

相同分辨率的工业相机,传感器面积越大,则其单位像素的面积也越大,成像质量也会越好。
recommend-type

Hadoop从业者为什么需要Spark?

Hadoop从业者为什么需要Spark?答案是Hadoop已死,Spark称霸。 而Hadoop的死亡过程在2012年已经开始: 1,由于Hadoop自身架构的导致了在离线数据存储分析意外的一切领域都力不从心,理论已经证明MapReduce模型可以...
recommend-type

《2022 PLG SaaS 内容运营指南》.pdf

2022 年, SaaS 内容从业者该如何把握内容运营趋势、抓住机遇?vika维格研究院发布了《2022年 PLG SaaS 内容运营指南》,并提供与理论全面配套的模板(管理系统)。这里的一些观点,或许能让你和你的团队在内容运营...
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

info-center source defatult

这是一个 Cisco IOS 命令,用于配置 Info Center 默认源。Info Center 是 Cisco 设备的日志记录和报告工具,可以用于收集和查看设备的事件、警报和错误信息。该命令用于配置 Info Center 默认源,即设备的默认日志记录和报告服务器。在命令行界面中输入该命令后,可以使用其他命令来配置默认源的 IP 地址、端口号和协议等参数。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。