定义一个Person类,该类该类包含name、age和gender三个实例属性,其中age为私有属性, 该有有一个可以修改私有属性age的实例方法,要求修改需要判断值在0-120之间,如满足条件,修改age属性,否则打印提示年龄无效。
时间: 2024-09-07 14:03:16 浏览: 84
Python可变和不可变、类的私有属性实例分析
当然,这是一个典型的面向对象编程的概念,在Python中我们可以这样设计Person类:
```python
class Person:
def __init__(self, name, age, gender):
# 私有属性,前面加两个下划线表示它是私有的,外部不能直接访问
self.__age = age
self.name = name
self.gender = gender
# 实例方法,用于设置和验证age属性
def set_age(self, new_age):
if 0 <= new_age <= 120: # 判断新年龄是否在有效范围内
self.__age = new_age
else:
print(f"年龄无效,{new_age}不在0-120的范围内.")
# 创建Person对象并尝试设置age
person = Person("张三", 25, "男")
person.set_age(30) # 输出:年龄无效,31不在0-120的范围内.
person.set_age(35) # 输出:年龄有效,35设置成功.
# 注意,虽然我们可以使用__getattribute__或dir()等方法访问私有属性,但在实际开发中,应该尽量避免直接操作私有属性,保持封装性
```
在这个例子中,我们创建了一个Person类,它有三个属性:name, gender(非私有),以及私有的age。set_age方法允许我们在满足条件的情况下改变age,否则会发出警告。
阅读全文