day25作业

一:题目1

定义一个People类,每个人的对象都有名字年龄性别三个属性分别完成对这个三个属性的:隐藏开放接口property伪装操作
ps:在开放的接口里严格控制赋值操作的数据类型问题

class Prople:
    def __init__(self, name, age, gender):
        self.__name = name
        self.__age = age
        self.__gender = gender

    def show_name(self):
        return f'姓名:{self.__name}'

    # 姓名相关
    def set_name(self, inp_name):
        self.__age = inp_name
        print(f'修改成功,修改后姓名为:{self.__age}')

    def del_name(self):
        print('怎么可能让你删除名字呢?!')

    name = property(show_name, set_name, del_name)

    # 年龄
    def show_age(self):
        return f'年龄:{self.__age}'

    def set_age(self, inp_age):
        if type(inp_age) is not int:
            print("姓名只能是字符串")
        else:
            self.__age = inp_age
            print(f'修改成功,修改后年龄为:{self.__age}')

    def del_age(self):
        inp_sure = input('确定要删除年龄吗?(Y/N)').strip()
        if inp_sure.lower() == 'y':
            del self.__age
            print('好家伙,连年龄都敢删,等着坐牢吧!')

        else:
            print('量你也不敢')

    age = property(show_age, set_age, del_age)

    # 性别
    def show_gender(self):
        return f'性别:{self.__gender}'

    def set_gender(self, inp_gender):
        if inp_gender == '男':
            self.__gender = '男'
            print(f'当前性别:{self.__gender}')
        elif inp_gender == '女':
            self.__gender = '女'
            print(f'当前性别:{self.__gender}')
        else:
            print('???只能输入男和女,不知道吗?!')

    def del_gender(self):
        inp_sure = input('确定要删除性别吗?(Y/N)').strip()
        if inp_sure.lower() == 'y':
            print('还好我阻止了你,不然你就凉凉了!')
        else:
            print('量你也不敢!')

    gender = property(show_gender, set_gender, del_gender)


p1 = Prople('xxq', 18, 'male')

# print(p1.name)
# p1.name = 'zsy'
# del p1.name

# print(p1.age)
# p1.age = 22
# del p1.age

# print(p1.gender)
# p1.gender = '男'
# del p1.gender
原文地址:https://www.cnblogs.com/xuexianqi/p/13442186.html