首页 > 编程语言 >PYthon基础之面向对象:反射方法实战—增删改查

PYthon基础之面向对象:反射方法实战—增删改查

时间:2022-11-07 21:33:16浏览次数:52  
标签:info __ .__ PYthon self 改查 strip 增删 alter

class User_cls_info(object):
    def __init__(self, name, age, gender, hobby, ):
        self.__name = name
        self.__age = age
        self.__gander = gender
        self.__hobby = hobby

    # 查看
    def check_info(self):
        for i in self.__dict__:
            v = getattr(self, i)
            i_1 = i.split('__')[1]
            print(f'数据名:{i_1},数据值:{v}')

    # 修改
    def alter_info(self):
        alter_k = input('请输入您需要修改的数据名>>>:').strip()
        alter_v = input('请输入修改后的数据值>>>:').strip()

        alter_k_ = f'_User_cls_info__{alter_k}'
        if alter_k_ not in self.__dict__:
            print('该数据名不存在')
            return

        if len(alter_v) <= 0:
            print('数据值不得为空')
            return

        setattr(self, alter_k_, alter_v)
        print(f'修改成功,{alter_k},已被修改为{alter_v}')

    # 增加
    def add_info(self):
        add_k = input('请输入您需要增加的数据名>>>:').strip()
        add_v = input('请输入对应的数据值>>>:').strip()
        if len(add_k) <= 0 or len(add_v) <= 0:
            print('数据值或数据名不得为空')
            return
        add_k_ = f'_User_cls_info__{add_k}'
        setattr(self, add_k_, add_v)
        print(f'已成功添加,数据名:{add_k},数据值:{add_v}')

    # 删除
    def del_info(self):
        del_k = input('请输入您需要删除的数据>>>:').strip()
        del_k = f'_User_cls_info__{del_k}'
        if del_k not in self.__dict__:
            print('该数据名不存在')
            return
        delattr(self, del_k)
        print(f'数据{del_k}已删除')

    def run(self):
        while True:
            print('''
            1.查看用户信息>>>:check_info
            2.修改用户信息>>>:alter_info
            3.增加用户信息>>>:add_info
            4.删除用户信息>>>:del_info
            ''')
            user_choice = input('请输入您需要执行的功能>>>:').strip()
            if hasattr(self, user_choice):
                getattr(self, user_choice)()
            else:
                print('该功能不存在')


user = User_cls_info('kangkang', 18, 'male', 'read')
user.run()

标签:info,__,.__,PYthon,self,改查,strip,增删,alter
From: https://www.cnblogs.com/kangssssh/p/16867551.html

相关文章

  • Python条件语句和循环语句简单使用方法
    1.Python条件语句Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:Python程序语言指定任......
  • python--敲击木鱼积累功德小项目
    importpygamepygame.mixer.init()screen=pygame.display.set_mode((700,500))pygame.display.set_caption("木鱼功德")img1=pygame.image.load("images/muyuluck1.jp......
  • Python读取通达信本地数据
    一、介绍python获取股票数据的方法很多,其中Tushare财经数据接口包很好用,当然,也可以通过通达信本地的数据获取,这样更为方便。日线数据存在这路径下D:\通达信\vipdoc\s......
  • Python 爬虫之Beautiful Soup
    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、......
  • python 正则表达式各种符号代表意义
    表达式全集字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行......
  • 进入python的世界_day28_python基础—— 面向对象三大特性之封装、多态、反射
    一、要学会看源码了(略微)1.举例​ 比如说以前学的json,虽然知道是可以把字典转为json格式的数据,但是当时的字典K、V都是可以被转的类型,如果V不是json支持转的格式,转换时......
  • 【python】机器学习算法(KNN)入门——手写数字识别
    前言嗨喽~大家好呀,这里是魔王呐!最近邻(kNearestNeighbors,KNN)算法是一种分类算法1968年由Cover和Hart提出,应用场景有宁符识别、文本分类、图像识别等领域。手......
  • Python Ujson
    UJson主要记录其安装方式,能使用pipinstallujson进行安装不过好像有点慢,反正我等了很久,也可以使用Python命令进行安装会快一点,命令如下:python-mpipinstallujson ......
  • Python基础之面向对象:5、三大特征-多态
    面对对象之多态目录面对对象之多态一、多态1、多态的概念2、多态的实际应用1、自我约束2、abc模块一、多态1、多态的概念​ 多态在实际应用时较为抽象,指事物的多种形态......
  • Python基础之面向对象:6、三大特征-封装
    面向对象之封装目录面向对象之封装一、封装1、封装的概念2、为什么要封装3、封装的两个层面二、隐藏与调用的方法1、隐藏的方法2、调用与修改的方法三、伪装1、伪装的概念......