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
    
  • 相关阅读:
    go视频提取音频
    ffmpeg常用命令 转
    mac安装homebrew
    go读取键盘输入两种方式
    静态方法加锁,和非静态方法加锁区别
    Java类锁和对象锁实践和内部私有锁关联
    Java基础】并发
    一步一步掌握线程机制(六)---Atomic变量和Thread局部变量
    compareAndSet() 注意点
    Java JUC之Atomic系列12大类实例讲解和原理分解
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13442186.html
Copyright © 2011-2022 走看看