zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    求逆序数 noj117
    背包问题 noj106
    士兵杀敌(二)
    Perl 日记模式操作(匹配与替换)
    Symbian中如何调试控制台程序
    Perl 日记references (often used)
    跨平台开发库(Symbian involved)日记1
    无法不想你,CLASSPATH,
    Symbian中不能跨越线程(RThread)使用的对象/组件(RSocket/Memery Heap,etc)
    几种设计模式分类的个人理解
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13442186.html
Copyright © 2011-2022 走看看