根据封装的要求 1、定义Person类,定义构造方法接收name的值赋值实例属性name,拥有私有属性__age,值为1。 2、定义set_age实例方法,接收new_age的值,更改私有属性__age的值。 3、定义get_age实例方法,返回私有属性__age的值。
时间: 2024-10-26 11:02:53 浏览: 28
java基础面向对象笔记
在Python中,根据封装的需求,我们可以在类中隐藏一些数据细节,只暴露必要的接口给外部使用。下面是一个名为`Person`的类,实现了你提到的封装要求:
```python
class Person:
def __init__(self, name):
"""
初始化方法,设置实例属性name
"""
self.name = name
# 私有属性__age,用于封装年龄信息
self.__age = 1
def set_age(self, new_age):
"""
set_age方法,用于设置私有属性__age,但对外部不可直接访问
"""
if isinstance(new_age, int) and new_age >= 0:
self.__age = new_age
else:
raise ValueError("Age must be a non-negative integer.")
def get_age(self):
"""
get_age方法,用于获取私有属性__age的值,提供安全的访问通道
"""
return self.__age
```
现在你可以创建一个`Person`对象并使用这个类的方法:
```python
person = Person("Alice")
person.set_age(25) # 设置年龄
print(person.get_age()) # 输出:25
```
在这个例子中,`__age`作为私有属性,保证了年龄信息不会被随意修改,只有通过`set_age`方法提供的公共途径才能改变它的值。
阅读全文