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
posted @ 2020-08-05 19:44  轻描丨淡写  阅读(128)  评论(0编辑  收藏  举报