python定义staff类。1.包含ID,name,age,salary属性。2.实现构造函数和__str__方法。3.定义一组方法修改上述4种属性。4.使用异常处理避免输入不合理内容。
时间: 2024-10-14 22:03:35 浏览: 31
directory.csv Employee_monthly_salary.csv titanic_train.csv
在Python中,我们可以创建一个名为`Staff`的类,按照您的要求定义属性、构造函数、`__str__`方法以及用于修改属性的方法,并加入异常处理。下面是一个示例:
```python
class Staff:
def __init__(self, id, name, age, salary):
self.id = id
self.name = name
self.age = age
self.salary = salary
# 构造函数:初始化对象时自动调用
def __str__(self):
return f"员工ID: {self.id}, 姓名: {self.name}, 年龄: {self.age}, 薪资: {self.salary}"
# 定义方法来修改属性
def set_id(self, new_id):
try:
if isinstance(new_id, int) and new_id > 0:
self.id = new_id
else:
raise ValueError("ID必须是非负整数")
except ValueError as e:
print(f"错误: {e}")
def set_name(self, new_name):
if isinstance(new_name, str):
self.name = new_name
else:
raise ValueError("姓名必须是字符串")
def set_age(self, new_age):
try:
if isinstance(new_age, int) and 0 <= new_age <= 150: # 这里假设年龄范围在0到150岁之间
self.age = new_age
else:
raise ValueError("年龄必须是0到150之间的整数")
except ValueError as e:
print(f"错误: {e}")
def set_salary(self, new_salary):
if isinstance(new_salary, (int, float)) and new_salary > 0:
self.salary = new_salary
else:
raise ValueError("薪资必须是正数")
# 示例
staff = Staff(1, "张三", 30, 5000)
print(staff)
try:
staff.set_id(-1)
except ValueError as e:
print(e)
staff.set_name("李四")
```
在这个例子中,我们定义了一个`Staff`类,它有四个属性和对应的设置方法,每个方法都包含了异常处理部分,以防止用户输入不合理的内容。
阅读全文