定义Person类,拥有姓名和年龄属性,其中年龄为私有属性,然后提供相应的方法用来访问和设置私有属性(使用@property装饰器)。提供show()方法输出所有属性的值。派生出Worker类,增加薪水属性,重定义show()方法输出所有属性的值。
时间: 2024-04-14 12:28:21 浏览: 30
好的,以下是定义的Person类和派生的Worker类的示例代码:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.__age = age
@property
def age(self):
return self.__age
@age.setter
def age(self, value):
self.__age = value
def show(self):
print(f"Name: {self.name}")
print(f"Age: {self.age}")
class Worker(Person):
def __init__(self, name, age, salary):
super().__init__(name, age)
self.salary = salary
def show(self):
super().show()
print(f"Salary: {self.salary}")
# 创建一个Person对象
person = Person("John", 25)
# 输出属性值
person.show()
# 修改年龄属性值
person.age = 30
# 再次输出属性值
person.show()
# 创建一个Worker对象
worker = Worker("Alice", 35, 5000)
# 输出属性值
worker.show()
```
这个示例展示了如何定义Person类和Worker类,并使用@property装饰器提供访问和设置私有属性的方法。Person类拥有姓名和年龄属性,其中年龄为私有属性。Worker类是Person类的派生类,增加了薪水属性。两个类都提供了show()方法来输出所有属性的值。
输出结果为:
```
Name: John
Age: 25
Name: John
Age: 30
Name: Alice
Age: 35
Salary: 5000
```
注意,私有属性`__age`的访问和设置方法使用`@property`装饰器,这样可以通过`person.age`来访问私有属性,而不是直接访问`person.__age`。同样,通过`person.age = 30`来设置私有属性的值。