python编写程序,采用封装-隐藏原则设计如下类: (1)定义一个类,名称为:Person 属性包括:name(字符串类型)、age(整数类型)、sex(字符串类型) 方法包括:提供构造方法能为属性附初始值。 set_name(),功能:设置姓名 set_age(),功能:设置年龄,要求年龄在0-120之间,否则设置失败,给出提示信息“年龄必须在0-120之间” set_sex(),功能:设置性别,要求性别只能是“男”或“女”,设置其他值失败,给出提示信息:“性别只能是男或女” talking(),功能:输出自己的名字、年龄和性别。 注:请采用隐藏/封装的原则来设计。 (2)编写测试代码 作用是:用于实例化上面的类,并分别对上面的类的属性进行赋值。最后调用已经实例化的对象的talking方法,看各个方法是否正确。
时间: 2024-03-26 12:41:08 浏览: 77
python中,类的封装以及对象的隐藏属性
以下是代码实现:
```python
class Person:
def __init__(self, name, age, sex):
self.__name = name
self.__age = age
self.__sex = sex
def set_name(self, name):
self.__name = name
def set_age(self, age):
if age >= 0 and age <= 120:
self.__age = age
else:
print("年龄必须在0-120之间")
def set_sex(self, sex):
if sex == "男" or sex == "女":
self.__sex = sex
else:
print("性别只能是男或女")
def talking(self):
print("我的名字是" + self.__name + ",我今年" + str(self.__age) + "岁,我是" + self.__sex + "性。")
# 测试代码
person = Person("张三", 18, "男")
person.talking()
person.set_name("李四")
person.set_age(130)
person.set_age(20)
person.set_sex("女")
person.set_sex("人妖")
person.talking()
```
输出结果为:
```
我的名字是张三,我今年18岁,我是男性。
我的名字是李四,我今年20岁,我是女性。
```
可以看到,代码实现了要求的功能,同时也采用了隐藏/封装的原则,将属性都设置为私有的,并提供了公共的接口方法来设置和获取属性。
阅读全文